pgm: Create instances of Git in try-with-resource
To prevent potential resource leak. Change-Id: I8ac4ae61193324849bafb46501a55f93c5029a4e Signed-off-by: David Pursehouse <david.pursehouse@sonymobile.com>
This commit is contained in:
parent
581698331a
commit
3096ab6502
|
@ -62,10 +62,12 @@ class Add extends TextBuiltin {
|
|||
|
||||
@Override
|
||||
protected void run() throws Exception {
|
||||
AddCommand addCmd = new Git(db).add();
|
||||
addCmd.setUpdate(update);
|
||||
for (String p : filepatterns)
|
||||
addCmd.addFilepattern(p);
|
||||
addCmd.call();
|
||||
try (Git git = new Git(db)) {
|
||||
AddCommand addCmd = git.add();
|
||||
addCmd.setUpdate(update);
|
||||
for (String p : filepatterns)
|
||||
addCmd.addFilepattern(p);
|
||||
addCmd.call();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -87,8 +87,8 @@ protected void run() throws Exception {
|
|||
else
|
||||
stream = outs;
|
||||
|
||||
try {
|
||||
ArchiveCommand cmd = new Git(db).archive()
|
||||
try (Git git = new Git(db)) {
|
||||
ArchiveCommand cmd = git.archive()
|
||||
.setTree(tree)
|
||||
.setFormat(format)
|
||||
.setPrefix(prefix)
|
||||
|
|
|
@ -186,29 +186,31 @@ private void list() throws Exception {
|
|||
// This can happen if HEAD is stillborn
|
||||
if (head != null) {
|
||||
String current = head.getLeaf().getName();
|
||||
ListBranchCommand command = new Git(db).branchList();
|
||||
if (all)
|
||||
command.setListMode(ListMode.ALL);
|
||||
else if (remote)
|
||||
command.setListMode(ListMode.REMOTE);
|
||||
try (Git git = new Git(db)) {
|
||||
ListBranchCommand command = git.branchList();
|
||||
if (all)
|
||||
command.setListMode(ListMode.ALL);
|
||||
else if (remote)
|
||||
command.setListMode(ListMode.REMOTE);
|
||||
|
||||
if (containsCommitish != null)
|
||||
command.setContains(containsCommitish);
|
||||
if (containsCommitish != null)
|
||||
command.setContains(containsCommitish);
|
||||
|
||||
List<Ref> refs = command.call();
|
||||
for (Ref ref : refs) {
|
||||
if (ref.getName().equals(Constants.HEAD))
|
||||
addRef("(no branch)", head); //$NON-NLS-1$
|
||||
}
|
||||
List<Ref> refs = command.call();
|
||||
for (Ref ref : refs) {
|
||||
if (ref.getName().equals(Constants.HEAD))
|
||||
addRef("(no branch)", head); //$NON-NLS-1$
|
||||
}
|
||||
|
||||
addRefs(refs, Constants.R_HEADS);
|
||||
addRefs(refs, Constants.R_REMOTES);
|
||||
addRefs(refs, Constants.R_HEADS);
|
||||
addRefs(refs, Constants.R_REMOTES);
|
||||
|
||||
try (ObjectReader reader = db.newObjectReader()) {
|
||||
for (final Entry<String, Ref> e : printRefs.entrySet()) {
|
||||
final Ref ref = e.getValue();
|
||||
printHead(reader, e.getKey(),
|
||||
current.equals(ref.getName()), ref);
|
||||
try (ObjectReader reader = db.newObjectReader()) {
|
||||
for (final Entry<String, Ref> e : printRefs.entrySet()) {
|
||||
final Ref ref = e.getValue();
|
||||
printHead(reader, e.getKey(),
|
||||
current.equals(ref.getName()), ref);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -89,47 +89,49 @@ protected void run() throws Exception {
|
|||
throw die(CLIText.get().onBranchToBeBorn);
|
||||
}
|
||||
|
||||
CheckoutCommand command = new Git(db).checkout();
|
||||
if (paths.size() > 0) {
|
||||
command.setStartPoint(name);
|
||||
for (String path : paths)
|
||||
command.addPath(path);
|
||||
} else {
|
||||
command.setCreateBranch(createBranch);
|
||||
command.setName(name);
|
||||
command.setForce(force);
|
||||
command.setOrphan(orphan);
|
||||
}
|
||||
try {
|
||||
String oldBranch = db.getBranch();
|
||||
Ref ref = command.call();
|
||||
if (ref == null)
|
||||
return;
|
||||
if (Repository.shortenRefName(ref.getName()).equals(oldBranch)) {
|
||||
outw.println(MessageFormat.format(
|
||||
CLIText.get().alreadyOnBranch,
|
||||
name));
|
||||
return;
|
||||
try (Git git = new Git(db)) {
|
||||
CheckoutCommand command = git.checkout();
|
||||
if (paths.size() > 0) {
|
||||
command.setStartPoint(name);
|
||||
for (String path : paths)
|
||||
command.addPath(path);
|
||||
} else {
|
||||
command.setCreateBranch(createBranch);
|
||||
command.setName(name);
|
||||
command.setForce(force);
|
||||
command.setOrphan(orphan);
|
||||
}
|
||||
if (createBranch || orphan)
|
||||
try {
|
||||
String oldBranch = db.getBranch();
|
||||
Ref ref = command.call();
|
||||
if (ref == null)
|
||||
return;
|
||||
if (Repository.shortenRefName(ref.getName()).equals(oldBranch)) {
|
||||
outw.println(MessageFormat.format(
|
||||
CLIText.get().alreadyOnBranch,
|
||||
name));
|
||||
return;
|
||||
}
|
||||
if (createBranch || orphan)
|
||||
outw.println(MessageFormat.format(
|
||||
CLIText.get().switchedToNewBranch, name));
|
||||
else
|
||||
outw.println(MessageFormat.format(
|
||||
CLIText.get().switchedToBranch,
|
||||
Repository.shortenRefName(ref.getName())));
|
||||
} catch (RefNotFoundException e) {
|
||||
outw.println(MessageFormat.format(
|
||||
CLIText.get().switchedToNewBranch, name));
|
||||
else
|
||||
outw.println(MessageFormat.format(
|
||||
CLIText.get().switchedToBranch,
|
||||
Repository.shortenRefName(ref.getName())));
|
||||
} catch (RefNotFoundException e) {
|
||||
outw.println(MessageFormat.format(
|
||||
CLIText.get().pathspecDidNotMatch,
|
||||
name));
|
||||
} catch (RefAlreadyExistsException e) {
|
||||
throw die(MessageFormat.format(CLIText.get().branchAlreadyExists,
|
||||
name));
|
||||
} catch (CheckoutConflictException e) {
|
||||
outw.println(CLIText.get().checkoutConflict);
|
||||
for (String path : e.getConflictingPaths())
|
||||
outw.println(MessageFormat.format(
|
||||
CLIText.get().checkoutConflictPathLine, path));
|
||||
CLIText.get().pathspecDidNotMatch,
|
||||
name));
|
||||
} catch (RefAlreadyExistsException e) {
|
||||
throw die(MessageFormat.format(CLIText.get().branchAlreadyExists,
|
||||
name));
|
||||
} catch (CheckoutConflictException e) {
|
||||
outw.println(CLIText.get().checkoutConflict);
|
||||
for (String path : e.getConflictingPaths())
|
||||
outw.println(MessageFormat.format(
|
||||
CLIText.get().checkoutConflictPathLine, path));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -80,37 +80,39 @@ class Commit extends TextBuiltin {
|
|||
@Override
|
||||
protected void run() throws NoHeadException, NoMessageException,
|
||||
ConcurrentRefUpdateException, JGitInternalException, Exception {
|
||||
CommitCommand commitCmd = new Git(db).commit();
|
||||
if (author != null)
|
||||
commitCmd.setAuthor(RawParseUtils.parsePersonIdent(author));
|
||||
if (message != null)
|
||||
commitCmd.setMessage(message);
|
||||
if (only && paths.isEmpty())
|
||||
throw die(CLIText.get().pathsRequired);
|
||||
if (only && all)
|
||||
throw die(CLIText.get().onlyOneOfIncludeOnlyAllInteractiveCanBeUsed);
|
||||
if (!paths.isEmpty())
|
||||
for (String p : paths)
|
||||
commitCmd.setOnly(p);
|
||||
commitCmd.setAmend(amend);
|
||||
commitCmd.setAll(all);
|
||||
Ref head = db.getRef(Constants.HEAD);
|
||||
RevCommit commit;
|
||||
try {
|
||||
commit = commitCmd.call();
|
||||
} catch (JGitInternalException e) {
|
||||
throw die(e.getMessage());
|
||||
}
|
||||
try (Git git = new Git(db)) {
|
||||
CommitCommand commitCmd = git.commit();
|
||||
if (author != null)
|
||||
commitCmd.setAuthor(RawParseUtils.parsePersonIdent(author));
|
||||
if (message != null)
|
||||
commitCmd.setMessage(message);
|
||||
if (only && paths.isEmpty())
|
||||
throw die(CLIText.get().pathsRequired);
|
||||
if (only && all)
|
||||
throw die(CLIText.get().onlyOneOfIncludeOnlyAllInteractiveCanBeUsed);
|
||||
if (!paths.isEmpty())
|
||||
for (String p : paths)
|
||||
commitCmd.setOnly(p);
|
||||
commitCmd.setAmend(amend);
|
||||
commitCmd.setAll(all);
|
||||
Ref head = db.getRef(Constants.HEAD);
|
||||
RevCommit commit;
|
||||
try {
|
||||
commit = commitCmd.call();
|
||||
} catch (JGitInternalException e) {
|
||||
throw die(e.getMessage());
|
||||
}
|
||||
|
||||
String branchName;
|
||||
if (!head.isSymbolic())
|
||||
branchName = CLIText.get().branchDetachedHEAD;
|
||||
else {
|
||||
branchName = head.getTarget().getName();
|
||||
if (branchName.startsWith(Constants.R_HEADS))
|
||||
branchName = branchName.substring(Constants.R_HEADS.length());
|
||||
String branchName;
|
||||
if (!head.isSymbolic())
|
||||
branchName = CLIText.get().branchDetachedHEAD;
|
||||
else {
|
||||
branchName = head.getTarget().getName();
|
||||
if (branchName.startsWith(Constants.R_HEADS))
|
||||
branchName = branchName.substring(Constants.R_HEADS.length());
|
||||
}
|
||||
outw.println("[" + branchName + " " + commit.name() + "] " //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
|
||||
+ commit.getShortMessage());
|
||||
}
|
||||
outw.println("[" + branchName + " " + commit.name() + "] " //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
|
||||
+ commit.getShortMessage());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -61,20 +61,21 @@ class Describe extends TextBuiltin {
|
|||
|
||||
@Override
|
||||
protected void run() throws Exception {
|
||||
DescribeCommand cmd = new Git(db).describe();
|
||||
if (tree != null)
|
||||
cmd.setTarget(tree);
|
||||
cmd.setLong(longDesc);
|
||||
String result = null;
|
||||
try {
|
||||
result = cmd.call();
|
||||
} catch (RefNotFoundException e) {
|
||||
throw die(CLIText.get().noNamesFound, e);
|
||||
try (Git git = new Git(db)) {
|
||||
DescribeCommand cmd = git.describe();
|
||||
if (tree != null)
|
||||
cmd.setTarget(tree);
|
||||
cmd.setLong(longDesc);
|
||||
String result = null;
|
||||
try {
|
||||
result = cmd.call();
|
||||
} catch (RefNotFoundException e) {
|
||||
throw die(CLIText.get().noNamesFound, e);
|
||||
}
|
||||
if (result == null)
|
||||
throw die(CLIText.get().noNamesFound);
|
||||
|
||||
outw.println(result);
|
||||
}
|
||||
if (result == null)
|
||||
throw die(CLIText.get().noNamesFound);
|
||||
|
||||
outw.println(result);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -104,31 +104,32 @@ void notags(@SuppressWarnings("unused")
|
|||
|
||||
@Override
|
||||
protected void run() throws Exception {
|
||||
Git git = new Git(db);
|
||||
FetchCommand fetch = git.fetch();
|
||||
if (fsck != null)
|
||||
fetch.setCheckFetchedObjects(fsck.booleanValue());
|
||||
if (prune != null)
|
||||
fetch.setRemoveDeletedRefs(prune.booleanValue());
|
||||
if (toget != null)
|
||||
fetch.setRefSpecs(toget);
|
||||
if (tags != null) {
|
||||
fetch.setTagOpt(tags.booleanValue() ? TagOpt.FETCH_TAGS
|
||||
: TagOpt.NO_TAGS);
|
||||
try (Git git = new Git(db)) {
|
||||
FetchCommand fetch = git.fetch();
|
||||
if (fsck != null)
|
||||
fetch.setCheckFetchedObjects(fsck.booleanValue());
|
||||
if (prune != null)
|
||||
fetch.setRemoveDeletedRefs(prune.booleanValue());
|
||||
if (toget != null)
|
||||
fetch.setRefSpecs(toget);
|
||||
if (tags != null) {
|
||||
fetch.setTagOpt(tags.booleanValue() ? TagOpt.FETCH_TAGS
|
||||
: TagOpt.NO_TAGS);
|
||||
}
|
||||
if (0 <= timeout)
|
||||
fetch.setTimeout(timeout);
|
||||
fetch.setDryRun(dryRun);
|
||||
fetch.setRemote(remote);
|
||||
if (thin != null)
|
||||
fetch.setThin(thin.booleanValue());
|
||||
if (quiet == null || !quiet.booleanValue())
|
||||
fetch.setProgressMonitor(new TextProgressMonitor(errw));
|
||||
|
||||
FetchResult result = fetch.call();
|
||||
if (result.getTrackingRefUpdates().isEmpty())
|
||||
return;
|
||||
|
||||
showFetchResult(result);
|
||||
}
|
||||
if (0 <= timeout)
|
||||
fetch.setTimeout(timeout);
|
||||
fetch.setDryRun(dryRun);
|
||||
fetch.setRemote(remote);
|
||||
if (thin != null)
|
||||
fetch.setThin(thin.booleanValue());
|
||||
if (quiet == null || !quiet.booleanValue())
|
||||
fetch.setProgressMonitor(new TextProgressMonitor(errw));
|
||||
|
||||
FetchResult result = fetch.call();
|
||||
if (result.getTrackingRefUpdates().isEmpty())
|
||||
return;
|
||||
|
||||
showFetchResult(result);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -121,22 +121,23 @@ protected void run() throws Exception {
|
|||
CLIText.get().refDoesNotExistOrNoCommit, ref));
|
||||
|
||||
Ref oldHead = db.getRef(Constants.HEAD);
|
||||
Git git = new Git(db);
|
||||
MergeCommand mergeCmd = git.merge().setStrategy(mergeStrategy)
|
||||
.setSquash(squash).setFastForward(ff).setCommit(!noCommit);
|
||||
if (srcRef != null)
|
||||
mergeCmd.include(srcRef);
|
||||
else
|
||||
mergeCmd.include(src);
|
||||
|
||||
if (message != null)
|
||||
mergeCmd.setMessage(message);
|
||||
|
||||
MergeResult result;
|
||||
try {
|
||||
result = mergeCmd.call();
|
||||
} catch (CheckoutConflictException e) {
|
||||
result = new MergeResult(e.getConflictingPaths()); // CHECKOUT_CONFLICT
|
||||
try (Git git = new Git(db)) {
|
||||
MergeCommand mergeCmd = git.merge().setStrategy(mergeStrategy)
|
||||
.setSquash(squash).setFastForward(ff).setCommit(!noCommit);
|
||||
if (srcRef != null)
|
||||
mergeCmd.include(srcRef);
|
||||
else
|
||||
mergeCmd.include(src);
|
||||
|
||||
if (message != null)
|
||||
mergeCmd.setMessage(message);
|
||||
|
||||
try {
|
||||
result = mergeCmd.call();
|
||||
} catch (CheckoutConflictException e) {
|
||||
result = new MergeResult(e.getConflictingPaths()); // CHECKOUT_CONFLICT
|
||||
}
|
||||
}
|
||||
|
||||
switch (result.getMergeStatus()) {
|
||||
|
|
|
@ -109,24 +109,25 @@ void nothin(@SuppressWarnings("unused") final boolean ignored) {
|
|||
|
||||
@Override
|
||||
protected void run() throws Exception {
|
||||
Git git = new Git(db);
|
||||
PushCommand push = git.push();
|
||||
push.setDryRun(dryRun);
|
||||
push.setForce(force);
|
||||
push.setProgressMonitor(new TextProgressMonitor(errw));
|
||||
push.setReceivePack(receivePack);
|
||||
push.setRefSpecs(refSpecs);
|
||||
if (all)
|
||||
push.setPushAll();
|
||||
if (tags)
|
||||
push.setPushTags();
|
||||
push.setRemote(remote);
|
||||
push.setThin(thin);
|
||||
push.setTimeout(timeout);
|
||||
Iterable<PushResult> results = push.call();
|
||||
for (PushResult result : results) {
|
||||
try (ObjectReader reader = db.newObjectReader()) {
|
||||
printPushResult(reader, result.getURI(), result);
|
||||
try (Git git = new Git(db)) {
|
||||
PushCommand push = git.push();
|
||||
push.setDryRun(dryRun);
|
||||
push.setForce(force);
|
||||
push.setProgressMonitor(new TextProgressMonitor(errw));
|
||||
push.setReceivePack(receivePack);
|
||||
push.setRefSpecs(refSpecs);
|
||||
if (all)
|
||||
push.setPushAll();
|
||||
if (tags)
|
||||
push.setPushTags();
|
||||
push.setRemote(remote);
|
||||
push.setThin(thin);
|
||||
push.setTimeout(timeout);
|
||||
Iterable<PushResult> results = push.call();
|
||||
for (PushResult result : results) {
|
||||
try (ObjectReader reader = db.newObjectReader()) {
|
||||
printPushResult(reader, result.getURI(), result);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -59,13 +59,15 @@ class Reflog extends TextBuiltin {
|
|||
|
||||
@Override
|
||||
protected void run() throws Exception {
|
||||
ReflogCommand cmd = new Git(db).reflog();
|
||||
if (ref != null)
|
||||
cmd.setRef(ref);
|
||||
Collection<ReflogEntry> entries = cmd.call();
|
||||
int i = 0;
|
||||
for (ReflogEntry entry : entries) {
|
||||
outw.println(toString(entry, i++));
|
||||
try (Git git = new Git(db)) {
|
||||
ReflogCommand cmd = git.reflog();
|
||||
if (ref != null)
|
||||
cmd.setRef(ref);
|
||||
Collection<ReflogEntry> entries = cmd.call();
|
||||
int i = 0;
|
||||
for (ReflogEntry entry : entries) {
|
||||
outw.println(toString(entry, i++));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -66,19 +66,21 @@ class Reset extends TextBuiltin {
|
|||
|
||||
@Override
|
||||
protected void run() throws Exception {
|
||||
ResetCommand command = new Git(db).reset();
|
||||
command.setRef(commit);
|
||||
ResetType mode = null;
|
||||
if (soft)
|
||||
mode = selectMode(mode, ResetType.SOFT);
|
||||
if (mixed)
|
||||
mode = selectMode(mode, ResetType.MIXED);
|
||||
if (hard)
|
||||
mode = selectMode(mode, ResetType.HARD);
|
||||
if (mode == null)
|
||||
throw die("no reset mode set");
|
||||
command.setMode(mode);
|
||||
command.call();
|
||||
try (Git git = new Git(db)) {
|
||||
ResetCommand command = git.reset();
|
||||
command.setRef(commit);
|
||||
ResetType mode = null;
|
||||
if (soft)
|
||||
mode = selectMode(mode, ResetType.SOFT);
|
||||
if (mixed)
|
||||
mode = selectMode(mode, ResetType.MIXED);
|
||||
if (hard)
|
||||
mode = selectMode(mode, ResetType.HARD);
|
||||
if (mode == null)
|
||||
throw die("no reset mode set");
|
||||
command.setMode(mode);
|
||||
command.call();
|
||||
}
|
||||
}
|
||||
|
||||
private static ResetType selectMode(ResetType mode, ResetType want) {
|
||||
|
|
|
@ -63,10 +63,11 @@ class Rm extends TextBuiltin {
|
|||
|
||||
@Override
|
||||
protected void run() throws Exception {
|
||||
RmCommand command = new Git(db).rm();
|
||||
for (String p : paths)
|
||||
command.addFilepattern(p);
|
||||
command.call();
|
||||
try (Git git = new Git(db)) {
|
||||
RmCommand command = git.rm();
|
||||
for (String p : paths)
|
||||
command.addFilepattern(p);
|
||||
command.call();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -88,12 +88,14 @@ class Status extends TextBuiltin {
|
|||
|
||||
@Override
|
||||
protected void run() throws Exception {
|
||||
StatusCommand statusCommand = new Git(db).status();
|
||||
if (filterPaths != null && filterPaths.size() > 0)
|
||||
for (String path : filterPaths)
|
||||
statusCommand.addPath(path);
|
||||
org.eclipse.jgit.api.Status status = statusCommand.call();
|
||||
printStatus(status);
|
||||
try (Git git = new Git(db)) {
|
||||
StatusCommand statusCommand = git.status();
|
||||
if (filterPaths != null && filterPaths.size() > 0)
|
||||
for (String path : filterPaths)
|
||||
statusCommand.addPath(path);
|
||||
org.eclipse.jgit.api.Status status = statusCommand.call();
|
||||
printStatus(status);
|
||||
}
|
||||
}
|
||||
|
||||
private void printStatus(org.eclipse.jgit.api.Status status)
|
||||
|
|
|
@ -79,26 +79,27 @@ class Tag extends TextBuiltin {
|
|||
|
||||
@Override
|
||||
protected void run() throws Exception {
|
||||
Git git = new Git(db);
|
||||
if (tagName != null) {
|
||||
TagCommand command = git.tag().setForceUpdate(force)
|
||||
.setMessage(message).setName(tagName);
|
||||
try (Git git = new Git(db)) {
|
||||
if (tagName != null) {
|
||||
TagCommand command = git.tag().setForceUpdate(force)
|
||||
.setMessage(message).setName(tagName);
|
||||
|
||||
if (object != null) {
|
||||
RevWalk walk = new RevWalk(db);
|
||||
command.setObjectId(walk.parseAny(object));
|
||||
}
|
||||
try {
|
||||
command.call();
|
||||
} catch (RefAlreadyExistsException e) {
|
||||
throw die(MessageFormat.format(CLIText.get().tagAlreadyExists,
|
||||
tagName));
|
||||
}
|
||||
} else {
|
||||
ListTagCommand command = git.tagList();
|
||||
List<Ref> list = command.call();
|
||||
for (Ref ref : list) {
|
||||
outw.println(Repository.shortenRefName(ref.getName()));
|
||||
if (object != null) {
|
||||
RevWalk walk = new RevWalk(db);
|
||||
command.setObjectId(walk.parseAny(object));
|
||||
}
|
||||
try {
|
||||
command.call();
|
||||
} catch (RefAlreadyExistsException e) {
|
||||
throw die(MessageFormat.format(CLIText.get().tagAlreadyExists,
|
||||
tagName));
|
||||
}
|
||||
} else {
|
||||
ListTagCommand command = git.tagList();
|
||||
List<Ref> list = command.call();
|
||||
for (Ref ref : list) {
|
||||
outw.println(Repository.shortenRefName(ref.getName()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue