nextcloud / desktop

💻 Desktop sync client for Nextcloud
https://nextcloud.com/install/#install-clients
GNU General Public License v2.0
3.03k stars 794 forks source link

Nextcloud client 3.1 syncs "ignored files" #2728

Closed libeanim closed 2 years ago

libeanim commented 3 years ago

How to use GitHub

Expected behaviour

Nextcloud client should ignore files and folders that have been added to the "Ignored Files" list through the UI.

Actual behaviour

Nextcloud client syncs folders that are in the "ignored files" list since the update to 3.1.
I've experienced this bug on "folder sync-connection"-level (see "Steps to reproduce" if unclear), it is also possible that it happens when using the global ignore file.

Steps to reproduce

  1. Add a new 'Folder Sync Connection'
  2. Click on the three dots on the settings window next to the newly added "folder sync connection" and select "Edit Ignored Files" from the dropdown menu.
  3. Add a folder you want nextcloud to ignore
  4. Start sync and create a folder that is in the ignored list
  5. Watch nextcloud client sync this folder

Client configuration

Client version: 3.1.0-20201214.180315.7f4ffd0f7-1.0~focal1

Using Qt 5.12.8, built against Qt 5.12.8

Using Qt platform plugin 'xcb'

Using 'OpenSSL 1.1.1f 31 Mar 2020'

Running on Ubuntu 20.04.1 LTS, x86_64

Installation path of client: /usr/bin/nextcloud

Logs

Haven't seen any errors in the logs, it seems like a general client problem. If it is only my installation I can add this information.

djpadz commented 2 years ago

@dasaweb I just grabbed the latest nightly, and it looks like things are working! Huzzah!

bretthl commented 2 years ago

Same problem, ignore list not working. Ubuntu 20.04 nautilus-nextcloud 3.3.6-20211028.151202.6d3270dd2-1.0~focal1

dasaweb commented 2 years ago

@bretthl Release 3.4.0 RC1 came out today (https://github.com/nextcloud/desktop/releases/tag/v3.4.0-rc1) that fixes #3882 and #2723. This should help. You can install this RC and help testing it ;-)

bretthl commented 2 years ago

@bretthl Release 3.4.0 RC1 came out today (https://github.com/nextcloud/desktop/releases/tag/v3.4.0-rc1) that fixes #3882 and #2723. This should help. You can install this RC and help testing it ;-)

Thanks for that, I will start using it and comment.

bretthl commented 2 years ago

3.4.1 RC1 is working with my testing using the ignore pattern somedir/* to suspend sync of all files in somedir. Keep up the good work, this app is awesome.

LecrisUT commented 2 years ago

Thank you for the pre-release. As expected, it works on MacOS as well with all the patterns in root and sub-directory being inherited correctly. Creating a .sync-exclude.lst overwrites the previous root one. Probably windows will work correctly as well, so any reason not to close the issue now that all changes have been merged?

Although, is there any #include ../.sync-exclude.lst functionality or similar?

SMESH109 commented 2 years ago

using the ignore pattern somedir/* to suspend sync of all files in somedir.

isn't the correct pattern just somedir/ without the asterisk? won't somedir/* scan all the files in the subfolder anyway without syncing them afterwards instead of just leaving out the whole folder for scan?

FlexW commented 2 years ago

Although, is there any #include ../.sync-exclude.lst functionality or similar?

No

isn't the correct pattern just somedir/ without the asterisk? won't somedir/* scan all the files in the subfolder anyway without syncing them afterwards instead of just leaving out the whole folder for scan?

As far as my understand goes, somedir/ will ignore and don't sync the folder somedir. syncfolder/* sould still sync the folder somedir but no file inside it.

Closing this issue as it seems that the original issue is resolved. Thanks for your help!

bretthl commented 2 years ago

Although, is there any #include ../.sync-exclude.lst functionality or similar?

No

isn't the correct pattern just somedir/ without the asterisk? won't somedir/* scan all the files in the subfolder anyway without syncing them afterwards instead of just leaving out the whole folder for scan?

As far as my understand goes, somedir/ will ignore and don't sync the folder somedir. syncfolder/* sould still sync the folder somedir but no file inside it.

Closing this issue as it seems that the original issue is resolved. Thanks for your help!

Your are correct. I've been playing with both options and probably best to leave out the asterisk. Can anyone point me to a list of "flags" with explanations of each? Been awhile since I have used these.

dasaweb commented 2 years ago

@bretthl Release 3.4.0 RC1 came out today (https://github.com/nextcloud/desktop/releases/tag/v3.4.0-rc1) that fixes #3882 and #2723. This should help. You can install this RC and help testing it ;-)

I was now brave enough to test the 3.4.0 RC1 on Win11, and tataaaaaa: It works! Finally having an up-to-date Nextcloud client again after a year is great. THANK YOU to everyone who contributed here! 💖

Detzi88 commented 1 year ago

I still have this issue on Version 3.4.2 (Ubuntu).

.git/*
.git/
.git

set in both the "general settings" and the "..." submenu are leading to the ".git" folder nor its content beeing ignored by nextcloud.

Is that only on my side or do others have the same issue?

bop34 commented 1 year ago

Yeah me too

Migsi commented 1 year ago

I still have this issue on Version 3.4.2 (Ubuntu).

.git/*
.git/
.git

set in both the "general settings" and the "..." submenu are leading to the ".git" folder nor its content beeing ignored by nextcloud.

Is that only on my side or do others have the same issue?

Me as well, I'm on EndeavourOS, my client version is:

$ nextcloud --version
Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
Nextcloud version 3.9.0git
Git revision c6c6c61f5e66e311abcd1e78ecec2266c2298dda
Using Qt 5.15.10, built against Qt 5.15.10
Using Qt platform plugin 'xcb'
Using 'OpenSSL 3.1.1 30 May 2023'
Running on EndeavourOS, x86_64

Steps to reproduce are:

  1. Add "repo" and "repo/" to global and/or sync ignore list (mix as you wish, doesn't matter)
  2. Move folder "repo" into synced directory
  3. Give the client ~5 seconds
  4. Watch it sync the excluded folder

I carefully read through all this thread and related resources to ensure I'm not just messing up my exclusion "pattern", but at this point I'm pretty sure I don't and this has to be broken again :(

bop34 commented 1 year ago

I have some new info to share. I just got this working on Windows by using two ignores. For example to ignore everything in a folder named example I added both example/ and example\ to my ignore list. On Linux I was able to ignore with just example/. In both examples neither the folder itself nor the files in the folder synced to the server. Notes:

mxwell-dev commented 1 year ago

My observation is that .sync-exclude.lst files further down in the sync'd directory tree seems overwrite top level exclude rules, rather than extend on them. This may make sense if there's no way to negate a rule (in .gitignore with a prefixed !), but sure as rain is unintuitive. So if .git/ ignored top-level and some git repository synced by nextcloud contains a local exclude for build/, it will sync .git again.

psyciknz commented 9 months ago

Any further updates to this? I have a .sync-exclude.lst file in a subdirectory for excluding (as others are doing .git). If I have it in the global it exlcudes as I desire. But if the excludes are set in a .sync-exclude.lst where the .git directory is a subdirectory. Then I can see the sync log full of objects when I make a commit.

So for reference. Nextcoud\Documents\Connections\.git is the .git folder I want to exclude everything but the config file. Nextcoud\Documents\Connections\.sync-exclude.lst - is my exclude file (contents below)

].git/COMMIT_EDITMSG
].git/FETCH_HEAD
].git/HEAD
].git/ORIG_HEAD
.git/logs/
.git/logs/refs/
.git/logs/refs/heads/
.git/logs/refs/remotes/
.git/objects/
.git/objects/pack/
].git/objects/pack/tmp_pack*
.git/objects/*/
].git/objects/*/*.*
].git/objects/*/*
].git/objects/pack/*.*
].git/index.lock
.git/refs/
.git/refs/*/
.git/refs/*/*
.git/refs/tags/

Version 3.4.0 Windows.

joshtrichards commented 9 months ago

You're commenting on an Issue that has been closed out for several years. If experiencing something (even similar) please open a new dedicated Issue as it may have a different underlying cause.