Skip to content

Conflicts are always added with LF, even in files using CRLF #7376

@arialdomartini

Description

@arialdomartini

Description

I am not 100% this is a bug. Maybe this is the desired behavior, or it is just a minor thing of no importance.
Also, I loath Window's CRLFs: a pain in the neck. I wish Windows was just compatible with Unix here. Anyway.

In Windows, using:

[working-copy]
eol-conversion = "none"

when a conflict is generated in a file with CRLF endlines, the conflict message lines use LF, so the resulting file mixes Unix and Windows line endings.

Steps to Reproduce the Problem

  1. jj config set --user working-copy.eol-conversion none
  2. jj git init
  3. jj new
  4. echo one > file
  5. jj edit '@-'
  6. echo two > file
  7. jj edit '@+'
  8. cat -a file

Expected Behavior

The file consistently uses CRLF:

<<<<<<< Conflict 1 of 1<CRLF>
%%%%%%% Changes from base to side #1<CRLF>
+two<CRLF>
+++++++ Contents of side #2<CRLF>
one<CRLF>
>>>>>>> Conflict 1 of 1 ends<CRLF>

Actual Behavior

LF and CRLF are mixed:

<<<<<<< Conflict 1 of 1<LF>
%%%%%%% Changes from base to side #1<LF>
+two<CRLF>
+++++++ Contents of side #2<LF>
one<CRLF>
>>>>>>> Conflict 1 of 1 ends<LF>

Notice the <CRLF> after one and two, the <LF> elsewhere.

(here's the actual content in bytes)

60
60
60
60
60
60
60
32
67
111
110
102
108
105
99
116
32
49
32
111
102
32
49
10   <-  LF
37
37
37
37
37
37
37
32
67
104
97
110
103
101
115
32
102
114
111
109
32
98
97
115
101
32
116
111
32
115
105
100
101
32
35
49
10   <- LF
43
116
119
111
13   <- CR
10   <- LF
43
43
43
43
43
43
43
32
67
111
110
116
101
110
116
115
32
111
102
32
115
105
100
101
32
35
50
10   <- LF
111
110
101
13
10   <- LF
62
62
62
62
62
62
62
32
67
111
110
102
108
105
99
116
32
49
32
111
102
32
49
32
101
110
100
115
10 <- LF

Specifications

  • Platform: Windows
  • Version: jj 0.28.2-b9ebe2f03c976515d2a155a411a368ae773c5493

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