BundleWriter: Support including HEAD in bundle
Bug: 446813 Change-Id: Ide64aec2a995dd7ff6c1325c3ada242a4eb4565e Signed-off-by: Robin Stocker <robin@nibor.org>
This commit is contained in:
parent
5c85d5d58a
commit
590e1b7602
|
@ -73,20 +73,19 @@
|
|||
public class BundleWriterTest extends SampleDataRepositoryTestCase {
|
||||
|
||||
@Test
|
||||
public void testWrite0() throws Exception {
|
||||
public void testWriteSingleRef() throws Exception {
|
||||
// Create a tiny bundle, (well one of) the first commits only
|
||||
final byte[] bundle = makeBundle("refs/heads/firstcommit",
|
||||
"42e4e7c5e507e113ebbb7801b16b52cf867b7ce1", null);
|
||||
|
||||
// Then we clone a new repo from that bundle and do a simple test. This
|
||||
// makes sure
|
||||
// we could read the bundle we created.
|
||||
// makes sure we could read the bundle we created.
|
||||
Repository newRepo = createBareRepository();
|
||||
FetchResult fetchResult = fetchFromBundle(newRepo, bundle);
|
||||
Ref advertisedRef = fetchResult
|
||||
.getAdvertisedRef("refs/heads/firstcommit");
|
||||
|
||||
// We expect firstcommit to appear by id
|
||||
// We expect first commit to appear by id
|
||||
assertEquals("42e4e7c5e507e113ebbb7801b16b52cf867b7ce1", advertisedRef
|
||||
.getObjectId().name());
|
||||
// ..and by name as the bundle created a new ref
|
||||
|
@ -94,13 +93,21 @@ public void testWrite0() throws Exception {
|
|||
.resolve("refs/heads/firstcommit").name());
|
||||
}
|
||||
|
||||
/**
|
||||
* Incremental bundle test
|
||||
*
|
||||
* @throws Exception
|
||||
*/
|
||||
@Test
|
||||
public void testWrite1() throws Exception {
|
||||
public void testWriteHEAD() throws Exception {
|
||||
byte[] bundle = makeBundle("HEAD",
|
||||
"42e4e7c5e507e113ebbb7801b16b52cf867b7ce1", null);
|
||||
|
||||
Repository newRepo = createBareRepository();
|
||||
FetchResult fetchResult = fetchFromBundle(newRepo, bundle);
|
||||
Ref advertisedRef = fetchResult.getAdvertisedRef("HEAD");
|
||||
|
||||
assertEquals("42e4e7c5e507e113ebbb7801b16b52cf867b7ce1", advertisedRef
|
||||
.getObjectId().name());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testIncrementalBundle() throws Exception {
|
||||
byte[] bundle;
|
||||
|
||||
// Create a small bundle, an early commit
|
||||
|
|
|
@ -128,7 +128,8 @@ public void setPackConfig(PackConfig pc) {
|
|||
* object to pack. Multiple refs may point to the same object.
|
||||
*/
|
||||
public void include(final String name, final AnyObjectId id) {
|
||||
if (!Repository.isValidRefName(name))
|
||||
boolean validRefName = Repository.isValidRefName(name) || Constants.HEAD.equals(name);
|
||||
if (!validRefName)
|
||||
throw new IllegalArgumentException(MessageFormat.format(JGitText.get().invalidRefName, name));
|
||||
if (include.containsKey(name))
|
||||
throw new IllegalStateException(JGitText.get().duplicateRef + name);
|
||||
|
|
Loading…
Reference in New Issue