When starting an anonymous transaction then original branch is unchanged
This commit is contained in:
parent
53e1fd394b
commit
71bb51c729
4 changed files with 31 additions and 0 deletions
|
@ -92,4 +92,11 @@ public interface GitDBBranch {
|
||||||
* @return the branch name
|
* @return the branch name
|
||||||
*/
|
*/
|
||||||
String name();
|
String name();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the commit id for the head of the branch.
|
||||||
|
*
|
||||||
|
* @return an Object Id.
|
||||||
|
*/
|
||||||
|
String getCommitId();
|
||||||
}
|
}
|
||||||
|
|
|
@ -126,6 +126,11 @@ class GitDBBranchImpl implements GitDBBranch {
|
||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getCommitId() {
|
||||||
|
return branchRef.getObjectId().name();
|
||||||
|
}
|
||||||
|
|
||||||
private String commitMessageForAdd(final String key, final String value) {
|
private String commitMessageForAdd(final String key, final String value) {
|
||||||
return String.format("Add key [%s] = [%s]", key, value);
|
return String.format("Add key [%s] = [%s]", key, value);
|
||||||
}
|
}
|
||||||
|
|
|
@ -76,4 +76,9 @@ class GitDBTransactionImpl implements GitDBTransaction {
|
||||||
public String name() {
|
public String name() {
|
||||||
return branch.name();
|
return branch.name();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getCommitId() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -339,6 +339,20 @@ class GitDBTest implements WithAssertions {
|
||||||
assertThat(transaction.name()).isNotNull();
|
assertThat(transaction.name()).isNotNull();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// When starting an anonymous transaction then original branch is unchanged
|
||||||
|
@Test
|
||||||
|
void startAnonymousTransaction_thenOriginalBranchUnchanged() throws IOException {
|
||||||
|
//given
|
||||||
|
final GitDB gitDB = gitDB(dirDoesNotExist());
|
||||||
|
final GitDBBranch gitDBBranch = gitDB.branch("master").get();
|
||||||
|
final String commitId = gitDBBranch.getCommitId();
|
||||||
|
//when
|
||||||
|
final GitDBTransaction transaction = gitDBBranch.transaction();
|
||||||
|
//then
|
||||||
|
assertThat(gitDBBranch.getCommitId()).isEqualTo(commitId);
|
||||||
|
assertThat(gitDB.branch("master").map(GitDBBranch::getCommitId)).contains(commitId);
|
||||||
|
}
|
||||||
|
|
||||||
// Given a GitDbTransaction handle (i.e. a new branch)
|
// Given a GitDbTransaction handle (i.e. a new branch)
|
||||||
// When putting a new key/value pair then the original GitDbBranch can't find it
|
// When putting a new key/value pair then the original GitDbBranch can't find it
|
||||||
@Test
|
@Test
|
||||||
|
|
Loading…
Reference in a new issue