/// <summary> /// Updates the tree definition. /// </summary> /// <param name="repository">The repository.</param> /// <param name="definition">The definition.</param> internal void UpdateTreeDefinition(IRepository repository, TreeDefinition definition) { if (repository == null) { throw new ArgumentNullException(nameof(repository)); } if (definition == null) { throw new ArgumentNullException(nameof(definition)); } var buffer = new StringBuilder(); foreach (var change in Modified.Concat(Added)) { change.New.ToJson(buffer); definition.Add(change.Path, repository.CreateBlob(buffer), Mode.NonExecutableFile); } foreach (var deleted in Deleted) { definition.Remove(deleted.Path); } }