mirror of
https://github.com/GitJournal/GitJournal.git
synced 2025-09-11 13:33:33 +08:00
37 lines
862 B
Dart
37 lines
862 B
Dart
import 'dart:convert';
|
|
|
|
String resolveMergeConflict(String fileContents) {
|
|
var lines = const LineSplitter().convert(fileContents);
|
|
var newLines = <String>[];
|
|
|
|
var inMergeConflict = false;
|
|
var seenStartMarker = false;
|
|
var seenMiddleMarker = false;
|
|
|
|
lines.forEach((line) {
|
|
if (line.startsWith("<<<<<<<") && !inMergeConflict) {
|
|
inMergeConflict = true;
|
|
seenStartMarker = true;
|
|
return;
|
|
}
|
|
if (line == "=======" && inMergeConflict && seenStartMarker) {
|
|
seenMiddleMarker = true;
|
|
return;
|
|
}
|
|
if (line.startsWith(">>>>>>>") && inMergeConflict && seenMiddleMarker) {
|
|
inMergeConflict = false;
|
|
seenStartMarker = false;
|
|
seenMiddleMarker = false;
|
|
return;
|
|
}
|
|
|
|
if (inMergeConflict && seenMiddleMarker) {
|
|
return;
|
|
}
|
|
|
|
newLines.add(line);
|
|
});
|
|
|
|
return newLines.join('\n');
|
|
}
|