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
.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
* 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);