@@ -38,120 +38,26 @@ public QueryLocalChanges(string repo, bool includeUntracked = true)
3838 var change = new Models . Change ( ) { Path = match . Groups [ 2 ] . Value } ;
3939 var status = match . Groups [ 1 ] . Value ;
4040
41- switch ( status )
41+ change . ConflictReason = status switch
4242 {
43- case " M" :
44- change . Set ( Models . ChangeState . None , Models . ChangeState . Modified ) ;
45- break ;
46- case " T" :
47- change . Set ( Models . ChangeState . None , Models . ChangeState . TypeChanged ) ;
48- break ;
49- case " A" :
50- change . Set ( Models . ChangeState . None , Models . ChangeState . Added ) ;
51- break ;
52- case " D" :
53- change . Set ( Models . ChangeState . None , Models . ChangeState . Deleted ) ;
54- break ;
55- case " R" :
56- change . Set ( Models . ChangeState . None , Models . ChangeState . Renamed ) ;
57- break ;
58- case " C" :
59- change . Set ( Models . ChangeState . None , Models . ChangeState . Copied ) ;
60- break ;
61- case "M" :
62- change . Set ( Models . ChangeState . Modified ) ;
63- break ;
64- case "MM" :
65- change . Set ( Models . ChangeState . Modified , Models . ChangeState . Modified ) ;
66- break ;
67- case "MT" :
68- change . Set ( Models . ChangeState . Modified , Models . ChangeState . TypeChanged ) ;
69- break ;
70- case "MD" :
71- change . Set ( Models . ChangeState . Modified , Models . ChangeState . Deleted ) ;
72- break ;
73- case "T" :
74- change . Set ( Models . ChangeState . TypeChanged ) ;
75- break ;
76- case "TM" :
77- change . Set ( Models . ChangeState . TypeChanged , Models . ChangeState . Modified ) ;
78- break ;
79- case "TT" :
80- change . Set ( Models . ChangeState . TypeChanged , Models . ChangeState . TypeChanged ) ;
81- break ;
82- case "TD" :
83- change . Set ( Models . ChangeState . TypeChanged , Models . ChangeState . Deleted ) ;
84- break ;
85- case "A" :
86- change . Set ( Models . ChangeState . Added ) ;
87- break ;
88- case "AM" :
89- change . Set ( Models . ChangeState . Added , Models . ChangeState . Modified ) ;
90- break ;
91- case "AT" :
92- change . Set ( Models . ChangeState . Added , Models . ChangeState . TypeChanged ) ;
93- break ;
94- case "AD" :
95- change . Set ( Models . ChangeState . Added , Models . ChangeState . Deleted ) ;
96- break ;
97- case "D" :
98- change . Set ( Models . ChangeState . Deleted ) ;
99- break ;
100- case "R" :
101- change . Set ( Models . ChangeState . Renamed ) ;
102- break ;
103- case "RM" :
104- change . Set ( Models . ChangeState . Renamed , Models . ChangeState . Modified ) ;
105- break ;
106- case "RT" :
107- change . Set ( Models . ChangeState . Renamed , Models . ChangeState . TypeChanged ) ;
108- break ;
109- case "RD" :
110- change . Set ( Models . ChangeState . Renamed , Models . ChangeState . Deleted ) ;
111- break ;
112- case "C" :
113- change . Set ( Models . ChangeState . Copied ) ;
114- break ;
115- case "CM" :
116- change . Set ( Models . ChangeState . Copied , Models . ChangeState . Modified ) ;
117- break ;
118- case "CT" :
119- change . Set ( Models . ChangeState . Copied , Models . ChangeState . TypeChanged ) ;
120- break ;
121- case "CD" :
122- change . Set ( Models . ChangeState . Copied , Models . ChangeState . Deleted ) ;
123- break ;
124- case "DD" :
125- change . ConflictReason = Models . ConflictReason . BothDeleted ;
126- change . Set ( Models . ChangeState . None , Models . ChangeState . Conflicted ) ;
127- break ;
128- case "AU" :
129- change . ConflictReason = Models . ConflictReason . AddedByUs ;
130- change . Set ( Models . ChangeState . None , Models . ChangeState . Conflicted ) ;
131- break ;
132- case "UD" :
133- change . ConflictReason = Models . ConflictReason . DeletedByThem ;
134- change . Set ( Models . ChangeState . None , Models . ChangeState . Conflicted ) ;
135- break ;
136- case "UA" :
137- change . ConflictReason = Models . ConflictReason . AddedByThem ;
138- change . Set ( Models . ChangeState . None , Models . ChangeState . Conflicted ) ;
139- break ;
140- case "DU" :
141- change . ConflictReason = Models . ConflictReason . DeletedByUs ;
142- change . Set ( Models . ChangeState . None , Models . ChangeState . Conflicted ) ;
143- break ;
144- case "AA" :
145- change . ConflictReason = Models . ConflictReason . BothAdded ;
146- change . Set ( Models . ChangeState . None , Models . ChangeState . Conflicted ) ;
147- break ;
148- case "UU" :
149- change . ConflictReason = Models . ConflictReason . BothModified ;
150- change . Set ( Models . ChangeState . None , Models . ChangeState . Conflicted ) ;
151- break ;
152- case "??" :
153- change . Set ( Models . ChangeState . None , Models . ChangeState . Untracked ) ;
154- break ;
43+ "DD" => Models . ConflictReason . BothDeleted ,
44+ "AU" => Models . ConflictReason . AddedByUs ,
45+ "UD" => Models . ConflictReason . DeletedByThem ,
46+ "UA" => Models . ConflictReason . AddedByThem ,
47+ "DU" => Models . ConflictReason . DeletedByUs ,
48+ "AA" => Models . ConflictReason . BothAdded ,
49+ "UU" => Models . ConflictReason . BothModified ,
50+ _ => Models . ConflictReason . None
51+ } ;
52+ if ( change . ConflictReason != Models . ConflictReason . None )
53+ change . Set ( Models . ChangeState . None , Models . ChangeState . Conflicted ) ;
54+ else if ( status == "??" )
55+ change . Set ( Models . ChangeState . None , Models . ChangeState . Untracked ) ;
56+ else
57+ {
58+ var indexStatus = Models . Change . ChangeStateFromCode ( status [ 0 ] ) ;
59+ var worktreeStatus = status . Length > 1 ? Models . Change . ChangeStateFromCode ( status [ 1 ] ) : Models . ChangeState . None ;
60+ change . Set ( indexStatus , worktreeStatus ) ;
15561 }
15662
15763 if ( change . Index != Models . ChangeState . None || change . WorkTree != Models . ChangeState . None )
0 commit comments