void ComputeMerge_Deleted(Commit mergeBase, PatchEntryChanges change, Patch headChanges) { var folder = change.Path.Replace($"/{FileSystemStorage.DataFile}", string.Empty); if (headChanges.Any(c => c.Path.Equals(folder, StringComparison.OrdinalIgnoreCase) && (c.Status == ChangeKind.Added || c.Status == ChangeKind.Modified))) { throw new NotImplementedException("Node deletion while children have been added or modified in head is not supported."); } var mergeBaseObject = GetContent(mergeBase, change.Path, "branch tip"); DeletedObjects.Add(new MetadataTreeMergeObjectDelete(change.Path, mergeBaseObject)); }
void ComputeMerge_Added(Commit branchTip, PatchEntryChanges change, Patch headChanges) { var parentDataPath = change.Path.GetDataParentDataPath(); if (headChanges.Any(c => c.Path.Equals(parentDataPath, StringComparison.OrdinalIgnoreCase) && c.Status == ChangeKind.Deleted)) { throw new NotImplementedException("Node addition while parent has been deleted in head is not supported."); } var branchObject = GetContent(branchTip, change.Path, "branch tip"); AddedObjects.Add(new MetadataTreeMergeObjectAdd(change.Path, branchObject)); }
private void ComputeMerge_Deleted(Commit mergeBase, PatchEntryChanges change, Patch headChanges) { // Only data file changes have to be taken into account // Changes made to the blobs will product a 'modified' change as well if (Path.GetFileName(change.Path) != FileSystemStorage.DataFile) { return; } var folder = change.Path.Replace($"/{FileSystemStorage.DataFile}", string.Empty); if (headChanges.Any(c => c.Path.Equals(folder, StringComparison.OrdinalIgnoreCase) && (c.Status == ChangeKind.Added || c.Status == ChangeKind.Modified))) { throw new NotImplementedException("Node deletion while children have been added or modified in head is not supported."); } var mergeBaseObject = GetContent(mergeBase, change.Path, "branch tip"); DeletedObjects.Add(new ObjectRepositoryDelete(change.Path, mergeBaseObject.Id)); }
private void ComputeMerge_Added(Commit branchTip, PatchEntryChanges change, Patch headChanges) { // Only data file changes have to be taken into account // Changes made to the blobs will product a 'modified' change as well if (Path.GetFileName(change.Path) != FileSystemStorage.DataFile) { return; } var parentDataPath = change.Path.GetDataParentDataPath(); if (headChanges.Any(c => c.Path.Equals(parentDataPath, StringComparison.OrdinalIgnoreCase) && c.Status == ChangeKind.Deleted)) { throw new NotImplementedException("Node addition while parent has been deleted in head is not supported."); } var branchObject = GetContent(branchTip, change.Path, "branch tip"); var parentId = change.Path.GetDataParentId(Repository); AddedObjects.Add(new ObjectRepositoryAdd(change.Path, branchObject, parentId)); }