The sound distributed version control system

#277 Pijul sees unchanged files as constantly moving if their parent folder is ignored

Closed on August 4, 2021
The_Decryptor on January 21, 2021

I’m seeing this with alpha 36 on Windows, if I add a file in a folder that is listed in the .ignore file the first record behaves normally, but every subsequent diff/record shows the files as being moved to their existing location. Even if I record the change, it shows up again afterwards.

# Hunks

1. Moved: ".vscode\\tasks.json" ".vscode\\tasks.json" 755 1.0
BF:BFD 1.0 -> 2.0:21/2
up 1.0, down 2.22

2. Moved: ".vscode\\launch.json" ".vscode\\launch.json" 755 1.0
BF:BFD 1.0 -> 2.1250:1272/2
up 1.0, down 2.1273

This is what I see every time with these rules (that are suggested for VSCode)

.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json

Even without the “exemption rules”, simply adding a file inside an ignored folder is enough to trigger it for me.

tankf33der on January 21, 2021

I cant repeat on Linux or dont understand repeat script correctly.

The_Decryptor on January 21, 2021

These steps in a empty repo show it for me

> pijul init
> mkdir ignore
> echo "ignore/" > .ignore
> echo "hello world" > .\ignore\hello.txt
> pijul add .\.ignore .\ignore\hello.txt
> pijul diff
message = ''
timestamp = '2021-01-21T07:33:28.578708200Z'
authors = []

# Hunks

1. File addition: "ignore\\hello.txt" in "/" 755
up 1.0, new 0:18
+ hello world

2. File addition: ".ignore" in "/" 755
up 1.0, new 34:43
+ ignore/
> pijul record -m 'first step'
Hash: K5MPFGLAFJCMLAZAPCO66FWZ6VT32BGD2FIVVGDJ6QAZKJH6CBEAC
> pijul diff
message = ''
timestamp = '2021-01-21T07:34:06.512918300Z'
authors = []

# Dependencies
[2] K5MPFGLAFJCMLAZAPCO66FWZ6VT32BGD2FIVVGDJ6QAZKJH6CBEAC

# Hunks

1. Moved: "ignore\\hello.txt" "ignore\\hello.txt" 755 1.0
BF:BFD 1.0 -> 2.0:19/2
up 1.0, down 2.20
tankf33der on January 21, 2021

no output on last pijul diff on Linux.

The_Decryptor on January 21, 2021

Hmm, might be Windows only then, thanks for taking a look.

fogti on February 8, 2021

This might be a problem related to the path component delimiter. It should be normalized before comparing to the entries in the .ignore file.

pmeunier on August 4, 2021

I know it’s been a while, but I’m triaging the discussions in order to try and move to beta soon.

Is this still a problem? We had a patch some time ago to normalise path separators and permissions on both Linux and Windows, I believe this could have fixed this issue.

pmeunier added tag Beta on August 4, 2021
The_Decryptor on August 4, 2021

I can’t reproduce it anymore with alpha 53, looks like it’s been fixed 👍

The_Decryptor closed this discussion on August 4, 2021