Skip to content

Non-actionable "conflicting changes in the working copy" message possible when changing to commit with different gitignore #5602

@ilyagr

Description

@ilyagr

Update: Yuya points out below this might be watchman-related. I did have both watchman and core.watchman.register_snapshot_trigger enabled during the reproduction.

Description

I can get a repo into a situation when I get a non-actionable message

$ jj next
Working copy now at: xqlkmt ccb2a0f (empty) (no description set)
Parent commit      : xuwtoq b814c10 2
Added 1 files, modified 1 files, removed 1 files
Warning: 1 of those updates were skipped because there were conflicting changes in the working copy.
Hint: Inspect the changes compared to the intended target with `jj diff --from ccb2a0fc5d87`.
Discard the conflicting changes with `jj restore --from ccb2a0fc5d87`.
$ jj diff --from ccb # No output
$ jj restore --from ccb2a0fc5d87
Nothing changed
$ cat qq
something
$  jj file show qq
something else

Steps to Reproduce the Problem

Start with the following repo state. You can also download jj-localignoretest.tar.gz.

The key point is that commit 2 has a file qq
with contents "something else" while commit 1 has a .gitignore that includes qq.
Then, you do jj new commit1.

$ jj log --patch --git
@  tsmuux ilyagr@users 26 seconds ago 8aacee6
│  (empty) (no description set)
│ ○  xuwtoq ilyagr@users 37 seconds ago b814c10
├─╯  2
│    diff --git a/.gitignore b/.gitignore
│    deleted file mode 100644
│    index b26b2efe69..0000000000
│    --- a/.gitignore
│    +++ /dev/null
│    @@ -1,1 +0,0 @@
│    -qq
│    diff --git a/qq b/qq
│    new file mode 100644
│    index 0000000000..3dfdc59b46
│    --- /dev/null
│    +++ b/qq
│    @@ -0,0 +1,1 @@
│    +something else
○  lzxkyw ilyagr@users 2 minutes ago 81435d5
│  1
│  diff --git a/.gitignore b/.gitignore
│  new file mode 100644
│  index 0000000000..b26b2efe69
│  --- /dev/null
│  +++ b/.gitignore
│  @@ -0,0 +1,1 @@
│  +qq
◆  zzzzzz root() 0000000

Then, do

$ echo something > qq
$ jj diff # No output, as expected.
$ jj next
Working copy now at: xqlkmt ccb2a0f (empty) (no description set)
Parent commit      : xuwtoq b814c10 2
Added 1 files, modified 1 files, removed 1 files
Warning: 1 of those updates were skipped because there were conflicting changes in the working copy.
Hint: Inspect the changes compared to the intended target with `jj diff --from ccb2a0fc5d87`.
Discard the conflicting changes with `jj restore --from ccb2a0fc5d87`.

Expected Behavior

An actionable message. (Haven't yet thought about what)

Actual Behavior

As already described above, following the instructions does not help

$ jj diff --from ccb # No output
$ jj restore --from ccb2a0fc5d87
Nothing changed
$ cat qq
something
$  jj file show qq
something else

Specifications

  • Platform: aarch64-darwin
  • Version: 0.26

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions