key: path val: blob content Three-way merge @param headTree source tree @param otherTree target tree @return merged tree
(Map<String, String> baseTree, Map<String, String> headTree, Map<String, String> otherTree)
| 138 | * @return merged tree |
| 139 | */ |
| 140 | public static Map<String, String> mergeTrees(Map<String, String> baseTree, Map<String, String> headTree, Map<String, String> otherTree) { |
| 141 | final Map<String, List<String>> comparedTrees = compareTrees(baseTree, headTree, otherTree); |
| 142 | Map<String, String> mergedTrees = new HashMap<>(); |
| 143 | comparedTrees.forEach((path, trees) -> { |
| 144 | String mergeBlobs = mergeBlobs(trees.get(0), trees.get(1), trees.get(2)); |
| 145 | final String objectId = HashObject.hashObject(mergeBlobs.getBytes(StandardCharsets.UTF_8)); |
| 146 | mergedTrees.put(path, objectId); |
| 147 | }); |
| 148 | return mergedTrees; |
| 149 | } |
| 150 | |
| 151 | /** |
| 152 | * diff3 |
no test coverage detected