|
|
|
@ -87,6 +87,8 @@ public class CommitCommand extends GitCommand<RevCommit> {
|
|
|
|
|
|
|
|
|
|
private boolean all; |
|
|
|
|
|
|
|
|
|
private boolean amend; |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* parents this commit should have. The current HEAD will be in this list |
|
|
|
|
* and also all commits mentioned in .git/MERGE_HEAD |
|
|
|
@ -155,7 +157,15 @@ public class CommitCommand extends GitCommand<RevCommit> {
|
|
|
|
|
// determine the current HEAD and the commit it is referring to
|
|
|
|
|
ObjectId headId = repo.resolve(Constants.HEAD + "^{commit}"); |
|
|
|
|
if (headId != null) |
|
|
|
|
parents.add(0, headId); |
|
|
|
|
if (amend) { |
|
|
|
|
RevCommit previousCommit = new RevWalk(repo) |
|
|
|
|
.parseCommit(headId); |
|
|
|
|
RevCommit[] p = previousCommit.getParents(); |
|
|
|
|
for (int i = 0; i < p.length; i++) |
|
|
|
|
parents.add(0, p[i].getId()); |
|
|
|
|
} else { |
|
|
|
|
parents.add(0, headId); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// lock the index
|
|
|
|
|
DirCache index = repo.lockDirCache(); |
|
|
|
@ -187,9 +197,10 @@ public class CommitCommand extends GitCommand<RevCommit> {
|
|
|
|
|
+ revCommit.getShortMessage(), false); |
|
|
|
|
|
|
|
|
|
ru.setExpectedOldObjectId(headId); |
|
|
|
|
Result rc = ru.update(); |
|
|
|
|
Result rc = ru.forceUpdate(); |
|
|
|
|
switch (rc) { |
|
|
|
|
case NEW: |
|
|
|
|
case FORCED: |
|
|
|
|
case FAST_FORWARD: { |
|
|
|
|
setCallable(false); |
|
|
|
|
if (state == RepositoryState.MERGING_RESOLVED) { |
|
|
|
@ -387,4 +398,17 @@ public class CommitCommand extends GitCommand<RevCommit> {
|
|
|
|
|
return this; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Used to amend the tip of the current branch. If set to true, the previous |
|
|
|
|
* commit will be amended. This is equivalent to --amend on the command |
|
|
|
|
* line. |
|
|
|
|
* |
|
|
|
|
* @param amend |
|
|
|
|
* @return {@code this} |
|
|
|
|
*/ |
|
|
|
|
public CommitCommand setAmend(boolean amend) { |
|
|
|
|
this.amend = amend; |
|
|
|
|
return this; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|