/// <exception cref="NGit.Api.Errors.JGitInternalException">upon internal failure</exception> public override Note Call() { CheckCallable(); RevWalk walk = new RevWalk(repo); ObjectInserter inserter = repo.NewObjectInserter(); NoteMap map = NoteMap.NewEmptyMap(); RevCommit notesCommit = null; try { Ref @ref = repo.GetRef(notesRef); // if we have a notes ref, use it if (@ref != null) { notesCommit = walk.ParseCommit(@ref.GetObjectId()); map = NoteMap.Read(walk.GetObjectReader(), notesCommit); } map.Set(id, null, inserter); CommitNoteMap(walk, map, notesCommit, inserter, "Notes removed by 'git notes remove'" ); return(map.GetNote(id)); } catch (IOException e) { throw new JGitInternalException(e.Message, e); } finally { inserter.Release(); walk.Release(); } }