Add|RemoveNoteComand: Reduce duplicated code
The private method commitNoteMap is in both classes with the same implementation. Make it static in AddNoteCommand and reuse it from RemoveNoteCommand. Change-Id: Ia037bf9efdd94ee7b8d33b41321e9cfd6ea4a6a5 Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
This commit is contained in:
parent
2d178f5f14
commit
bc9e3a31b2
|
@ -99,7 +99,7 @@ public Note call() throws GitAPIException {
|
|||
map = NoteMap.read(walk.getObjectReader(), notesCommit);
|
||||
}
|
||||
map.set(id, message, inserter);
|
||||
commitNoteMap(walk, map, notesCommit, inserter,
|
||||
commitNoteMap(repo, notesRef, walk, map, notesCommit, inserter,
|
||||
"Notes added by 'git notes add'"); //$NON-NLS-1$
|
||||
return map.getNote(id);
|
||||
} catch (IOException e) {
|
||||
|
@ -134,7 +134,8 @@ public AddNoteCommand setMessage(String message) {
|
|||
return this;
|
||||
}
|
||||
|
||||
private void commitNoteMap(RevWalk walk, NoteMap map,
|
||||
static void commitNoteMap(Repository r, String ref, RevWalk walk,
|
||||
NoteMap map,
|
||||
RevCommit notesCommit,
|
||||
ObjectInserter inserter,
|
||||
String msg)
|
||||
|
@ -142,14 +143,14 @@ private void commitNoteMap(RevWalk walk, NoteMap map,
|
|||
// commit the note
|
||||
CommitBuilder builder = new CommitBuilder();
|
||||
builder.setTreeId(map.writeTree(inserter));
|
||||
builder.setAuthor(new PersonIdent(repo));
|
||||
builder.setAuthor(new PersonIdent(r));
|
||||
builder.setCommitter(builder.getAuthor());
|
||||
builder.setMessage(msg);
|
||||
if (notesCommit != null)
|
||||
builder.setParentIds(notesCommit);
|
||||
ObjectId commit = inserter.insert(builder);
|
||||
inserter.flush();
|
||||
RefUpdate refUpdate = repo.updateRef(notesRef);
|
||||
RefUpdate refUpdate = r.updateRef(ref);
|
||||
if (notesCommit != null)
|
||||
refUpdate.setExpectedOldObjectId(notesCommit);
|
||||
else
|
||||
|
|
|
@ -46,13 +46,9 @@
|
|||
|
||||
import org.eclipse.jgit.api.errors.GitAPIException;
|
||||
import org.eclipse.jgit.api.errors.JGitInternalException;
|
||||
import org.eclipse.jgit.lib.CommitBuilder;
|
||||
import org.eclipse.jgit.lib.Constants;
|
||||
import org.eclipse.jgit.lib.ObjectId;
|
||||
import org.eclipse.jgit.lib.ObjectInserter;
|
||||
import org.eclipse.jgit.lib.PersonIdent;
|
||||
import org.eclipse.jgit.lib.Ref;
|
||||
import org.eclipse.jgit.lib.RefUpdate;
|
||||
import org.eclipse.jgit.lib.Repository;
|
||||
import org.eclipse.jgit.notes.Note;
|
||||
import org.eclipse.jgit.notes.NoteMap;
|
||||
|
@ -99,7 +95,8 @@ public Note call() throws GitAPIException {
|
|||
map = NoteMap.read(walk.getObjectReader(), notesCommit);
|
||||
}
|
||||
map.set(id, null, inserter);
|
||||
commitNoteMap(walk, map, notesCommit, inserter,
|
||||
AddNoteCommand.commitNoteMap(repo, notesRef, walk, map, notesCommit,
|
||||
inserter,
|
||||
"Notes removed by 'git notes remove'"); //$NON-NLS-1$
|
||||
return map.getNote(id);
|
||||
} catch (IOException e) {
|
||||
|
@ -121,30 +118,6 @@ public RemoveNoteCommand setObjectId(RevObject id) {
|
|||
return this;
|
||||
}
|
||||
|
||||
private void commitNoteMap(RevWalk walk, NoteMap map,
|
||||
RevCommit notesCommit,
|
||||
ObjectInserter inserter,
|
||||
String msg)
|
||||
throws IOException {
|
||||
// commit the note
|
||||
CommitBuilder builder = new CommitBuilder();
|
||||
builder.setTreeId(map.writeTree(inserter));
|
||||
builder.setAuthor(new PersonIdent(repo));
|
||||
builder.setCommitter(builder.getAuthor());
|
||||
builder.setMessage(msg);
|
||||
if (notesCommit != null)
|
||||
builder.setParentIds(notesCommit);
|
||||
ObjectId commit = inserter.insert(builder);
|
||||
inserter.flush();
|
||||
RefUpdate refUpdate = repo.updateRef(notesRef);
|
||||
if (notesCommit != null)
|
||||
refUpdate.setExpectedOldObjectId(notesCommit);
|
||||
else
|
||||
refUpdate.setExpectedOldObjectId(ObjectId.zeroId());
|
||||
refUpdate.setNewObjectId(commit);
|
||||
refUpdate.update(walk);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the name of the <code>Ref</code> to remove a note from.
|
||||
*
|
||||
|
|
Loading…
Reference in New Issue