Change-Id: Ib6ee3a2874a7e2240aa68f4ac32d00c4d1fab5ae Signed-off-by: Chris Aniszczyk <zx@twitter.com>tags/v3.0.0.201305080800-m7
import org.apache.tools.ant.BuildException; | import org.apache.tools.ant.BuildException; | ||||
import org.apache.tools.ant.DefaultLogger; | import org.apache.tools.ant.DefaultLogger; | ||||
import org.apache.tools.ant.Project; | import org.apache.tools.ant.Project; | ||||
import org.eclipse.jgit.internal.storage.file.FileRepository; | |||||
import org.eclipse.jgit.junit.LocalDiskRepositoryTestCase; | import org.eclipse.jgit.junit.LocalDiskRepositoryTestCase; | ||||
import org.eclipse.jgit.lib.Repository; | |||||
import org.eclipse.jgit.lib.RepositoryCache; | import org.eclipse.jgit.lib.RepositoryCache; | ||||
import org.eclipse.jgit.util.FS; | import org.eclipse.jgit.util.FS; | ||||
import org.junit.Before; | import org.junit.Before; | ||||
@Test | @Test | ||||
public void shouldCloneAValidGitRepository() throws Exception { | public void shouldCloneAValidGitRepository() throws Exception { | ||||
FileRepository repo = createBareRepository(); | |||||
Repository repo = createBareRepository(); | |||||
File directory = repo.getDirectory(); | File directory = repo.getDirectory(); | ||||
task.setUri("file://" + directory); | task.setUri("file://" + directory); | ||||
task.execute(); | task.execute(); | ||||
@Test | @Test | ||||
public void shouldCreateABareCloneOfAValidGitRepository() throws Exception { | public void shouldCreateABareCloneOfAValidGitRepository() throws Exception { | ||||
FileRepository repo = createBareRepository(); | |||||
Repository repo = createBareRepository(); | |||||
File directory = repo.getDirectory(); | File directory = repo.getDirectory(); | ||||
task.setUri("file://" + directory); | task.setUri("file://" + directory); | ||||
task.setBare(true); | task.setBare(true); |
import org.eclipse.jgit.errors.RepositoryNotFoundException; | import org.eclipse.jgit.errors.RepositoryNotFoundException; | ||||
import org.eclipse.jgit.http.server.GitServlet; | import org.eclipse.jgit.http.server.GitServlet; | ||||
import org.eclipse.jgit.http.server.resolver.DefaultReceivePackFactory; | import org.eclipse.jgit.http.server.resolver.DefaultReceivePackFactory; | ||||
import org.eclipse.jgit.internal.storage.file.FileRepository; | |||||
import org.eclipse.jgit.junit.TestRepository; | import org.eclipse.jgit.junit.TestRepository; | ||||
import org.eclipse.jgit.junit.http.HttpTestCase; | import org.eclipse.jgit.junit.http.HttpTestCase; | ||||
import org.eclipse.jgit.lib.Constants; | import org.eclipse.jgit.lib.Constants; | ||||
import org.eclipse.jgit.lib.NullProgressMonitor; | import org.eclipse.jgit.lib.NullProgressMonitor; | ||||
import org.eclipse.jgit.lib.ObjectId; | import org.eclipse.jgit.lib.ObjectId; | ||||
import org.eclipse.jgit.lib.Repository; | import org.eclipse.jgit.lib.Repository; | ||||
import org.eclipse.jgit.lib.StoredConfig; | |||||
import org.eclipse.jgit.revwalk.RevBlob; | import org.eclipse.jgit.revwalk.RevBlob; | ||||
import org.eclipse.jgit.revwalk.RevCommit; | import org.eclipse.jgit.revwalk.RevCommit; | ||||
import org.eclipse.jgit.storage.file.FileBasedConfig; | |||||
import org.eclipse.jgit.transport.ReceivePack; | import org.eclipse.jgit.transport.ReceivePack; | ||||
import org.eclipse.jgit.transport.RemoteRefUpdate; | import org.eclipse.jgit.transport.RemoteRefUpdate; | ||||
import org.eclipse.jgit.transport.Transport; | import org.eclipse.jgit.transport.Transport; | ||||
import org.junit.Test; | import org.junit.Test; | ||||
public class AdvertiseErrorTest extends HttpTestCase { | public class AdvertiseErrorTest extends HttpTestCase { | ||||
private FileRepository remoteRepository; | |||||
private Repository remoteRepository; | |||||
private URIish remoteURI; | private URIish remoteURI; | ||||
public void setUp() throws Exception { | public void setUp() throws Exception { | ||||
super.setUp(); | super.setUp(); | ||||
final TestRepository<FileRepository> src = createTestRepository(); | |||||
final TestRepository<Repository> src = createTestRepository(); | |||||
final String srcName = src.getRepository().getDirectory().getName(); | final String srcName = src.getRepository().getDirectory().getName(); | ||||
ServletContextHandler app = server.addContext("/git"); | ServletContextHandler app = server.addContext("/git"); | ||||
remoteRepository = src.getRepository(); | remoteRepository = src.getRepository(); | ||||
remoteURI = toURIish(app, srcName); | remoteURI = toURIish(app, srcName); | ||||
FileBasedConfig cfg = remoteRepository.getConfig(); | |||||
StoredConfig cfg = remoteRepository.getConfig(); | |||||
cfg.setBoolean("http", null, "receivepack", true); | cfg.setBoolean("http", null, "receivepack", true); | ||||
cfg.save(); | cfg.save(); | ||||
} | } |
import org.eclipse.jetty.servlet.DefaultServlet; | import org.eclipse.jetty.servlet.DefaultServlet; | ||||
import org.eclipse.jetty.servlet.ServletContextHandler; | import org.eclipse.jetty.servlet.ServletContextHandler; | ||||
import org.eclipse.jgit.errors.NotSupportedException; | import org.eclipse.jgit.errors.NotSupportedException; | ||||
import org.eclipse.jgit.internal.storage.file.FileRepository; | |||||
import org.eclipse.jgit.junit.TestRepository; | import org.eclipse.jgit.junit.TestRepository; | ||||
import org.eclipse.jgit.junit.http.AccessEvent; | import org.eclipse.jgit.junit.http.AccessEvent; | ||||
import org.eclipse.jgit.junit.http.HttpTestCase; | import org.eclipse.jgit.junit.http.HttpTestCase; | ||||
public void setUp() throws Exception { | public void setUp() throws Exception { | ||||
super.setUp(); | super.setUp(); | ||||
final TestRepository<FileRepository> src = createTestRepository(); | |||||
final TestRepository<Repository> src = createTestRepository(); | |||||
final File srcGit = src.getRepository().getDirectory(); | final File srcGit = src.getRepository().getDirectory(); | ||||
final URI base = srcGit.getParentFile().toURI(); | final URI base = srcGit.getParentFile().toURI(); | ||||
import org.eclipse.jgit.errors.NotSupportedException; | import org.eclipse.jgit.errors.NotSupportedException; | ||||
import org.eclipse.jgit.errors.RepositoryNotFoundException; | import org.eclipse.jgit.errors.RepositoryNotFoundException; | ||||
import org.eclipse.jgit.http.server.GitServlet; | import org.eclipse.jgit.http.server.GitServlet; | ||||
import org.eclipse.jgit.internal.storage.file.FileRepository; | |||||
import org.eclipse.jgit.junit.TestRepository; | import org.eclipse.jgit.junit.TestRepository; | ||||
import org.eclipse.jgit.junit.http.AccessEvent; | import org.eclipse.jgit.junit.http.AccessEvent; | ||||
import org.eclipse.jgit.junit.http.HttpTestCase; | import org.eclipse.jgit.junit.http.HttpTestCase; | ||||
public void setUp() throws Exception { | public void setUp() throws Exception { | ||||
super.setUp(); | super.setUp(); | ||||
final TestRepository<FileRepository> src = createTestRepository(); | |||||
final TestRepository<Repository> src = createTestRepository(); | |||||
final String srcName = src.getRepository().getDirectory().getName(); | final String srcName = src.getRepository().getDirectory().getName(); | ||||
ServletContextHandler app = server.addContext("/git"); | ServletContextHandler app = server.addContext("/git"); |
import org.eclipse.jgit.errors.RepositoryNotFoundException; | import org.eclipse.jgit.errors.RepositoryNotFoundException; | ||||
import org.eclipse.jgit.http.server.GitServlet; | import org.eclipse.jgit.http.server.GitServlet; | ||||
import org.eclipse.jgit.http.server.resolver.DefaultReceivePackFactory; | import org.eclipse.jgit.http.server.resolver.DefaultReceivePackFactory; | ||||
import org.eclipse.jgit.internal.storage.file.FileRepository; | |||||
import org.eclipse.jgit.junit.TestRepository; | import org.eclipse.jgit.junit.TestRepository; | ||||
import org.eclipse.jgit.junit.http.AccessEvent; | import org.eclipse.jgit.junit.http.AccessEvent; | ||||
import org.eclipse.jgit.junit.http.HttpTestCase; | import org.eclipse.jgit.junit.http.HttpTestCase; | ||||
import org.eclipse.jgit.lib.NullProgressMonitor; | import org.eclipse.jgit.lib.NullProgressMonitor; | ||||
import org.eclipse.jgit.lib.ObjectId; | import org.eclipse.jgit.lib.ObjectId; | ||||
import org.eclipse.jgit.lib.Repository; | import org.eclipse.jgit.lib.Repository; | ||||
import org.eclipse.jgit.lib.StoredConfig; | |||||
import org.eclipse.jgit.revwalk.RevBlob; | import org.eclipse.jgit.revwalk.RevBlob; | ||||
import org.eclipse.jgit.revwalk.RevCommit; | import org.eclipse.jgit.revwalk.RevCommit; | ||||
import org.eclipse.jgit.storage.file.FileBasedConfig; | |||||
import org.eclipse.jgit.transport.PreReceiveHook; | import org.eclipse.jgit.transport.PreReceiveHook; | ||||
import org.eclipse.jgit.transport.PushResult; | import org.eclipse.jgit.transport.PushResult; | ||||
import org.eclipse.jgit.transport.ReceiveCommand; | import org.eclipse.jgit.transport.ReceiveCommand; | ||||
import org.junit.Test; | import org.junit.Test; | ||||
public class HookMessageTest extends HttpTestCase { | public class HookMessageTest extends HttpTestCase { | ||||
private FileRepository remoteRepository; | |||||
private Repository remoteRepository; | |||||
private URIish remoteURI; | private URIish remoteURI; | ||||
public void setUp() throws Exception { | public void setUp() throws Exception { | ||||
super.setUp(); | super.setUp(); | ||||
final TestRepository<FileRepository> src = createTestRepository(); | |||||
final TestRepository<Repository> src = createTestRepository(); | |||||
final String srcName = src.getRepository().getDirectory().getName(); | final String srcName = src.getRepository().getDirectory().getName(); | ||||
ServletContextHandler app = server.addContext("/git"); | ServletContextHandler app = server.addContext("/git"); | ||||
remoteRepository = src.getRepository(); | remoteRepository = src.getRepository(); | ||||
remoteURI = toURIish(app, srcName); | remoteURI = toURIish(app, srcName); | ||||
FileBasedConfig cfg = remoteRepository.getConfig(); | |||||
StoredConfig cfg = remoteRepository.getConfig(); | |||||
cfg.setBoolean("http", null, "receivepack", true); | cfg.setBoolean("http", null, "receivepack", true); | ||||
cfg.save(); | cfg.save(); | ||||
} | } |
import org.eclipse.jgit.errors.TransportException; | import org.eclipse.jgit.errors.TransportException; | ||||
import org.eclipse.jgit.http.server.GitServlet; | import org.eclipse.jgit.http.server.GitServlet; | ||||
import org.eclipse.jgit.internal.JGitText; | import org.eclipse.jgit.internal.JGitText; | ||||
import org.eclipse.jgit.internal.storage.file.FileRepository; | |||||
import org.eclipse.jgit.junit.TestRepository; | import org.eclipse.jgit.junit.TestRepository; | ||||
import org.eclipse.jgit.junit.http.AccessEvent; | import org.eclipse.jgit.junit.http.AccessEvent; | ||||
import org.eclipse.jgit.junit.http.AppServer; | import org.eclipse.jgit.junit.http.AppServer; | ||||
import org.eclipse.jgit.lib.Ref; | import org.eclipse.jgit.lib.Ref; | ||||
import org.eclipse.jgit.lib.RefUpdate; | import org.eclipse.jgit.lib.RefUpdate; | ||||
import org.eclipse.jgit.lib.Repository; | import org.eclipse.jgit.lib.Repository; | ||||
import org.eclipse.jgit.lib.StoredConfig; | |||||
import org.eclipse.jgit.revwalk.RevCommit; | import org.eclipse.jgit.revwalk.RevCommit; | ||||
import org.eclipse.jgit.storage.file.FileBasedConfig; | |||||
import org.eclipse.jgit.transport.FetchConnection; | import org.eclipse.jgit.transport.FetchConnection; | ||||
import org.eclipse.jgit.transport.Transport; | import org.eclipse.jgit.transport.Transport; | ||||
import org.eclipse.jgit.transport.URIish; | import org.eclipse.jgit.transport.URIish; | ||||
import org.junit.Test; | import org.junit.Test; | ||||
public class HttpClientTests extends HttpTestCase { | public class HttpClientTests extends HttpTestCase { | ||||
private TestRepository<FileRepository> remoteRepository; | |||||
private TestRepository<Repository> remoteRepository; | |||||
private URIish dumbAuthNoneURI; | private URIish dumbAuthNoneURI; | ||||
public Repository open(HttpServletRequest req, String name) | public Repository open(HttpServletRequest req, String name) | ||||
throws RepositoryNotFoundException, | throws RepositoryNotFoundException, | ||||
ServiceNotEnabledException { | ServiceNotEnabledException { | ||||
final FileRepository db = remoteRepository.getRepository(); | |||||
final Repository db = remoteRepository.getRepository(); | |||||
if (!name.equals(nameOf(db))) | if (!name.equals(nameOf(db))) | ||||
throw new RepositoryNotFoundException(name); | throw new RepositoryNotFoundException(name); | ||||
return ctx; | return ctx; | ||||
} | } | ||||
private static String nameOf(final FileRepository db) { | |||||
private static String nameOf(final Repository db) { | |||||
return db.getDirectory().getName(); | return db.getDirectory().getName(); | ||||
} | } | ||||
@Test | @Test | ||||
public void testListRemote_Dumb_NoHEAD() throws Exception { | public void testListRemote_Dumb_NoHEAD() throws Exception { | ||||
FileRepository src = remoteRepository.getRepository(); | |||||
Repository src = remoteRepository.getRepository(); | |||||
File headref = new File(src.getDirectory(), Constants.HEAD); | File headref = new File(src.getDirectory(), Constants.HEAD); | ||||
assertTrue("HEAD used to be present", headref.delete()); | assertTrue("HEAD used to be present", headref.delete()); | ||||
assertFalse("HEAD is gone", headref.exists()); | assertFalse("HEAD is gone", headref.exists()); | ||||
@Test | @Test | ||||
public void testListRemote_Smart_UploadPackDisabled() throws Exception { | public void testListRemote_Smart_UploadPackDisabled() throws Exception { | ||||
FileRepository src = remoteRepository.getRepository(); | |||||
final FileBasedConfig cfg = src.getConfig(); | |||||
Repository src = remoteRepository.getRepository(); | |||||
final StoredConfig cfg = src.getConfig(); | |||||
cfg.setBoolean("http", null, "uploadpack", false); | cfg.setBoolean("http", null, "uploadpack", false); | ||||
cfg.save(); | cfg.save(); | ||||
import org.eclipse.jgit.http.server.GitServlet; | import org.eclipse.jgit.http.server.GitServlet; | ||||
import org.eclipse.jgit.http.server.GitSmartHttpTools; | import org.eclipse.jgit.http.server.GitSmartHttpTools; | ||||
import org.eclipse.jgit.internal.JGitText; | import org.eclipse.jgit.internal.JGitText; | ||||
import org.eclipse.jgit.internal.storage.file.FileRepository; | |||||
import org.eclipse.jgit.junit.TestRepository; | import org.eclipse.jgit.junit.TestRepository; | ||||
import org.eclipse.jgit.junit.http.HttpTestCase; | import org.eclipse.jgit.junit.http.HttpTestCase; | ||||
import org.eclipse.jgit.lib.Constants; | import org.eclipse.jgit.lib.Constants; | ||||
import org.eclipse.jgit.lib.ObjectId; | import org.eclipse.jgit.lib.ObjectId; | ||||
import org.eclipse.jgit.lib.Repository; | import org.eclipse.jgit.lib.Repository; | ||||
import org.eclipse.jgit.lib.StoredConfig; | |||||
import org.eclipse.jgit.revwalk.RevBlob; | import org.eclipse.jgit.revwalk.RevBlob; | ||||
import org.eclipse.jgit.storage.file.FileBasedConfig; | |||||
import org.eclipse.jgit.transport.PacketLineIn; | import org.eclipse.jgit.transport.PacketLineIn; | ||||
import org.eclipse.jgit.transport.PacketLineOut; | import org.eclipse.jgit.transport.PacketLineOut; | ||||
import org.eclipse.jgit.transport.URIish; | import org.eclipse.jgit.transport.URIish; | ||||
import org.junit.Test; | import org.junit.Test; | ||||
public class ProtocolErrorTest extends HttpTestCase { | public class ProtocolErrorTest extends HttpTestCase { | ||||
private FileRepository remoteRepository; | |||||
private Repository remoteRepository; | |||||
private URIish remoteURI; | private URIish remoteURI; | ||||
public void setUp() throws Exception { | public void setUp() throws Exception { | ||||
super.setUp(); | super.setUp(); | ||||
final TestRepository<FileRepository> src = createTestRepository(); | |||||
final TestRepository<Repository> src = createTestRepository(); | |||||
final String srcName = src.getRepository().getDirectory().getName(); | final String srcName = src.getRepository().getDirectory().getName(); | ||||
ServletContextHandler app = server.addContext("/git"); | ServletContextHandler app = server.addContext("/git"); | ||||
remoteRepository = src.getRepository(); | remoteRepository = src.getRepository(); | ||||
remoteURI = toURIish(app, srcName); | remoteURI = toURIish(app, srcName); | ||||
FileBasedConfig cfg = remoteRepository.getConfig(); | |||||
StoredConfig cfg = remoteRepository.getConfig(); | |||||
cfg.setBoolean("http", null, "receivepack", true); | cfg.setBoolean("http", null, "receivepack", true); | ||||
cfg.save(); | cfg.save(); | ||||
import org.eclipse.jgit.errors.TransportException; | import org.eclipse.jgit.errors.TransportException; | ||||
import org.eclipse.jgit.http.server.GitServlet; | import org.eclipse.jgit.http.server.GitServlet; | ||||
import org.eclipse.jgit.internal.JGitText; | import org.eclipse.jgit.internal.JGitText; | ||||
import org.eclipse.jgit.internal.storage.file.FileRepository; | |||||
import org.eclipse.jgit.internal.storage.file.ReflogEntry; | import org.eclipse.jgit.internal.storage.file.ReflogEntry; | ||||
import org.eclipse.jgit.internal.storage.file.ReflogReader; | import org.eclipse.jgit.internal.storage.file.ReflogReader; | ||||
import org.eclipse.jgit.junit.TestRepository; | import org.eclipse.jgit.junit.TestRepository; | ||||
import org.eclipse.jgit.lib.ObjectId; | import org.eclipse.jgit.lib.ObjectId; | ||||
import org.eclipse.jgit.lib.Ref; | import org.eclipse.jgit.lib.Ref; | ||||
import org.eclipse.jgit.lib.Repository; | import org.eclipse.jgit.lib.Repository; | ||||
import org.eclipse.jgit.lib.StoredConfig; | |||||
import org.eclipse.jgit.revwalk.RevBlob; | import org.eclipse.jgit.revwalk.RevBlob; | ||||
import org.eclipse.jgit.revwalk.RevCommit; | import org.eclipse.jgit.revwalk.RevCommit; | ||||
import org.eclipse.jgit.storage.file.FileBasedConfig; | |||||
import org.eclipse.jgit.transport.FetchConnection; | import org.eclipse.jgit.transport.FetchConnection; | ||||
import org.eclipse.jgit.transport.HttpTransport; | import org.eclipse.jgit.transport.HttpTransport; | ||||
import org.eclipse.jgit.transport.RemoteRefUpdate; | import org.eclipse.jgit.transport.RemoteRefUpdate; | ||||
public class SmartClientSmartServerTest extends HttpTestCase { | public class SmartClientSmartServerTest extends HttpTestCase { | ||||
private static final String HDR_TRANSFER_ENCODING = "Transfer-Encoding"; | private static final String HDR_TRANSFER_ENCODING = "Transfer-Encoding"; | ||||
private FileRepository remoteRepository; | |||||
private Repository remoteRepository; | |||||
private URIish remoteURI; | private URIish remoteURI; | ||||
public void setUp() throws Exception { | public void setUp() throws Exception { | ||||
super.setUp(); | super.setUp(); | ||||
final TestRepository<FileRepository> src = createTestRepository(); | |||||
final TestRepository<Repository> src = createTestRepository(); | |||||
final String srcName = src.getRepository().getDirectory().getName(); | final String srcName = src.getRepository().getDirectory().getName(); | ||||
ServletContextHandler app = server.addContext("/git"); | ServletContextHandler app = server.addContext("/git"); | ||||
@Test | @Test | ||||
public void testPush_ChunkedEncoding() throws Exception { | public void testPush_ChunkedEncoding() throws Exception { | ||||
final TestRepository<FileRepository> src = createTestRepository(); | |||||
final TestRepository<Repository> src = createTestRepository(); | |||||
final RevBlob Q_bin = src.blob(new TestRng("Q").nextBytes(128 * 1024)); | final RevBlob Q_bin = src.blob(new TestRng("Q").nextBytes(128 * 1024)); | ||||
final RevCommit Q = src.commit().add("Q", Q_bin).create(); | final RevCommit Q = src.commit().add("Q", Q_bin).create(); | ||||
final FileRepository db = src.getRepository(); | |||||
final Repository db = src.getRepository(); | |||||
final String dstName = Constants.R_HEADS + "new.branch"; | final String dstName = Constants.R_HEADS + "new.branch"; | ||||
Transport t; | Transport t; | ||||
enableReceivePack(); | enableReceivePack(); | ||||
final FileBasedConfig cfg = db.getConfig(); | |||||
final StoredConfig cfg = db.getConfig(); | |||||
cfg.setInt("core", null, "compression", 0); | cfg.setInt("core", null, "compression", 0); | ||||
cfg.setInt("http", null, "postbuffer", 8 * 1024); | cfg.setInt("http", null, "postbuffer", 8 * 1024); | ||||
cfg.save(); | cfg.save(); | ||||
} | } | ||||
private void enableReceivePack() throws IOException { | private void enableReceivePack() throws IOException { | ||||
final FileBasedConfig cfg = remoteRepository.getConfig(); | |||||
final StoredConfig cfg = remoteRepository.getConfig(); | |||||
cfg.setBoolean("http", null, "receivepack", true); | cfg.setBoolean("http", null, "receivepack", true); | ||||
cfg.save(); | cfg.save(); | ||||
} | } |
import java.util.Set; | import java.util.Set; | ||||
import org.eclipse.jetty.servlet.ServletContextHandler; | import org.eclipse.jetty.servlet.ServletContextHandler; | ||||
import org.eclipse.jgit.internal.storage.file.FileRepository; | |||||
import org.eclipse.jgit.junit.LocalDiskRepositoryTestCase; | import org.eclipse.jgit.junit.LocalDiskRepositoryTestCase; | ||||
import org.eclipse.jgit.junit.TestRepository; | import org.eclipse.jgit.junit.TestRepository; | ||||
import org.eclipse.jgit.lib.AnyObjectId; | import org.eclipse.jgit.lib.AnyObjectId; | ||||
super.tearDown(); | super.tearDown(); | ||||
} | } | ||||
protected TestRepository<FileRepository> createTestRepository() | |||||
protected TestRepository<Repository> createTestRepository() | |||||
throws IOException { | throws IOException { | ||||
return new TestRepository<FileRepository>(createBareRepository()); | |||||
return new TestRepository<Repository>(createBareRepository()); | |||||
} | } | ||||
protected URIish toURIish(String path) throws URISyntaxException { | protected URIish toURIish(String path) throws URISyntaxException { |
import org.eclipse.jgit.dircache.DirCacheCheckout; | import org.eclipse.jgit.dircache.DirCacheCheckout; | ||||
import org.eclipse.jgit.errors.IncorrectObjectTypeException; | import org.eclipse.jgit.errors.IncorrectObjectTypeException; | ||||
import org.eclipse.jgit.errors.MissingObjectException; | import org.eclipse.jgit.errors.MissingObjectException; | ||||
import org.eclipse.jgit.internal.storage.file.FileRepository; | |||||
import org.eclipse.jgit.lib.Constants; | import org.eclipse.jgit.lib.Constants; | ||||
import org.eclipse.jgit.lib.Ref; | import org.eclipse.jgit.lib.Ref; | ||||
import org.eclipse.jgit.lib.RefUpdate; | import org.eclipse.jgit.lib.RefUpdate; | ||||
import org.eclipse.jgit.lib.Repository; | |||||
import org.eclipse.jgit.lib.StoredConfig; | |||||
import org.eclipse.jgit.lib.TextProgressMonitor; | import org.eclipse.jgit.lib.TextProgressMonitor; | ||||
import org.eclipse.jgit.revwalk.RevCommit; | import org.eclipse.jgit.revwalk.RevCommit; | ||||
import org.eclipse.jgit.revwalk.RevWalk; | import org.eclipse.jgit.revwalk.RevWalk; | ||||
import org.eclipse.jgit.storage.file.FileBasedConfig; | |||||
import org.eclipse.jgit.storage.file.FileRepositoryBuilder; | |||||
import org.eclipse.jgit.transport.FetchResult; | import org.eclipse.jgit.transport.FetchResult; | ||||
import org.eclipse.jgit.transport.RefSpec; | import org.eclipse.jgit.transport.RefSpec; | ||||
import org.eclipse.jgit.transport.RemoteConfig; | import org.eclipse.jgit.transport.RemoteConfig; | ||||
@Argument(index = 1, metaVar = "metaVar_directory") | @Argument(index = 1, metaVar = "metaVar_directory") | ||||
private String localName; | private String localName; | ||||
private FileRepository dst; | |||||
private Repository dst; | |||||
@Override | @Override | ||||
protected final boolean requiresRepository() { | protected final boolean requiresRepository() { | ||||
if (gitdir == null) | if (gitdir == null) | ||||
gitdir = new File(localName, Constants.DOT_GIT).getAbsolutePath(); | gitdir = new File(localName, Constants.DOT_GIT).getAbsolutePath(); | ||||
dst = new FileRepository(gitdir); | |||||
dst = new FileRepositoryBuilder().setGitDir(new File(gitdir)).build(); | |||||
dst.create(); | dst.create(); | ||||
final FileBasedConfig dstcfg = dst.getConfig(); | |||||
final StoredConfig dstcfg = dst.getConfig(); | |||||
dstcfg.setBoolean("core", null, "bare", false); //$NON-NLS-1$ //$NON-NLS-2$ | dstcfg.setBoolean("core", null, "bare", false); //$NON-NLS-1$ //$NON-NLS-2$ | ||||
dstcfg.save(); | dstcfg.save(); | ||||
db = dst; | db = dst; | ||||
private void saveRemote(final URIish uri) throws URISyntaxException, | private void saveRemote(final URIish uri) throws URISyntaxException, | ||||
IOException { | IOException { | ||||
final FileBasedConfig dstcfg = dst.getConfig(); | |||||
final StoredConfig dstcfg = dst.getConfig(); | |||||
final RemoteConfig rc = new RemoteConfig(dstcfg, remoteName); | final RemoteConfig rc = new RemoteConfig(dstcfg, remoteName); | ||||
rc.addURI(uri); | rc.addURI(uri); | ||||
rc.addFetchRefSpec(new RefSpec().setForceUpdate(true) | rc.addFetchRefSpec(new RefSpec().setForceUpdate(true) |
import org.eclipse.jgit.api.CreateBranchCommand.SetupUpstreamMode; | import org.eclipse.jgit.api.CreateBranchCommand.SetupUpstreamMode; | ||||
import org.eclipse.jgit.api.MergeResult.MergeStatus; | import org.eclipse.jgit.api.MergeResult.MergeStatus; | ||||
import org.eclipse.jgit.api.errors.NoHeadException; | import org.eclipse.jgit.api.errors.NoHeadException; | ||||
import org.eclipse.jgit.internal.storage.file.FileRepository; | |||||
import org.eclipse.jgit.junit.RepositoryTestCase; | import org.eclipse.jgit.junit.RepositoryTestCase; | ||||
import org.eclipse.jgit.lib.Constants; | import org.eclipse.jgit.lib.Constants; | ||||
import org.eclipse.jgit.lib.ObjectId; | import org.eclipse.jgit.lib.ObjectId; | ||||
public class PullCommandTest extends RepositoryTestCase { | public class PullCommandTest extends RepositoryTestCase { | ||||
/** Second Test repository */ | /** Second Test repository */ | ||||
protected FileRepository dbTarget; | |||||
protected Repository dbTarget; | |||||
private Git source; | private Git source; | ||||
import org.eclipse.jgit.api.CreateBranchCommand.SetupUpstreamMode; | import org.eclipse.jgit.api.CreateBranchCommand.SetupUpstreamMode; | ||||
import org.eclipse.jgit.api.MergeResult.MergeStatus; | import org.eclipse.jgit.api.MergeResult.MergeStatus; | ||||
import org.eclipse.jgit.api.RebaseResult.Status; | import org.eclipse.jgit.api.RebaseResult.Status; | ||||
import org.eclipse.jgit.internal.storage.file.FileRepository; | |||||
import org.eclipse.jgit.junit.RepositoryTestCase; | import org.eclipse.jgit.junit.RepositoryTestCase; | ||||
import org.eclipse.jgit.lib.ConfigConstants; | import org.eclipse.jgit.lib.ConfigConstants; | ||||
import org.eclipse.jgit.lib.Constants; | import org.eclipse.jgit.lib.Constants; | ||||
public class PullCommandWithRebaseTest extends RepositoryTestCase { | public class PullCommandWithRebaseTest extends RepositoryTestCase { | ||||
/** Second Test repository */ | /** Second Test repository */ | ||||
protected FileRepository dbTarget; | |||||
protected Repository dbTarget; | |||||
private Git source; | private Git source; | ||||
import org.eclipse.jgit.lib.AbbreviatedObjectId; | import org.eclipse.jgit.lib.AbbreviatedObjectId; | ||||
import org.eclipse.jgit.lib.ObjectId; | import org.eclipse.jgit.lib.ObjectId; | ||||
import org.eclipse.jgit.lib.ObjectReader; | import org.eclipse.jgit.lib.ObjectReader; | ||||
import org.eclipse.jgit.lib.Repository; | |||||
import org.eclipse.jgit.revwalk.RevBlob; | import org.eclipse.jgit.revwalk.RevBlob; | ||||
import org.eclipse.jgit.transport.PackedObjectInfo; | import org.eclipse.jgit.transport.PackedObjectInfo; | ||||
import org.eclipse.jgit.util.FileUtils; | import org.eclipse.jgit.util.FileUtils; | ||||
private ObjectReader reader; | private ObjectReader reader; | ||||
private TestRepository<FileRepository> test; | |||||
private TestRepository<Repository> test; | |||||
@Before | @Before | ||||
public void setUp() throws Exception { | public void setUp() throws Exception { | ||||
super.setUp(); | super.setUp(); | ||||
db = createBareRepository(); | db = createBareRepository(); | ||||
reader = db.newObjectReader(); | reader = db.newObjectReader(); | ||||
test = new TestRepository<FileRepository>(db); | |||||
test = new TestRepository<Repository>(db); | |||||
} | } | ||||
@After | @After |
import org.eclipse.jgit.lib.ConfigConstants; | import org.eclipse.jgit.lib.ConfigConstants; | ||||
import org.eclipse.jgit.lib.Constants; | import org.eclipse.jgit.lib.Constants; | ||||
import org.eclipse.jgit.lib.Repository; | import org.eclipse.jgit.lib.Repository; | ||||
import org.eclipse.jgit.storage.file.FileBasedConfig; | |||||
import org.eclipse.jgit.lib.StoredConfig; | |||||
import org.eclipse.jgit.storage.file.FileRepositoryBuilder; | import org.eclipse.jgit.storage.file.FileRepositoryBuilder; | ||||
import org.eclipse.jgit.util.FileUtils; | import org.eclipse.jgit.util.FileUtils; | ||||
import org.junit.Test; | import org.junit.Test; | ||||
public class FileRepositoryBuilderTest extends LocalDiskRepositoryTestCase { | public class FileRepositoryBuilderTest extends LocalDiskRepositoryTestCase { | ||||
@Test | @Test | ||||
public void testShouldAutomagicallyDetectGitDirectory() throws Exception { | public void testShouldAutomagicallyDetectGitDirectory() throws Exception { | ||||
FileRepository r = createWorkRepository(); | |||||
Repository r = createWorkRepository(); | |||||
File d = new File(r.getDirectory(), "sub-dir"); | File d = new File(r.getDirectory(), "sub-dir"); | ||||
FileUtils.mkdir(d); | FileUtils.mkdir(d); | ||||
@Test | @Test | ||||
public void emptyRepositoryFormatVersion() throws Exception { | public void emptyRepositoryFormatVersion() throws Exception { | ||||
FileRepository r = createWorkRepository(); | |||||
FileBasedConfig config = r.getConfig(); | |||||
Repository r = createWorkRepository(); | |||||
StoredConfig config = r.getConfig(); | |||||
config.setString(ConfigConstants.CONFIG_CORE_SECTION, null, | config.setString(ConfigConstants.CONFIG_CORE_SECTION, null, | ||||
ConfigConstants.CONFIG_KEY_REPO_FORMAT_VERSION, ""); | ConfigConstants.CONFIG_KEY_REPO_FORMAT_VERSION, ""); | ||||
config.save(); | config.save(); | ||||
@Test | @Test | ||||
public void invalidRepositoryFormatVersion() throws Exception { | public void invalidRepositoryFormatVersion() throws Exception { | ||||
FileRepository r = createWorkRepository(); | |||||
FileBasedConfig config = r.getConfig(); | |||||
Repository r = createWorkRepository(); | |||||
StoredConfig config = r.getConfig(); | |||||
config.setString(ConfigConstants.CONFIG_CORE_SECTION, null, | config.setString(ConfigConstants.CONFIG_CORE_SECTION, null, | ||||
ConfigConstants.CONFIG_KEY_REPO_FORMAT_VERSION, "notanumber"); | ConfigConstants.CONFIG_KEY_REPO_FORMAT_VERSION, "notanumber"); | ||||
config.save(); | config.save(); | ||||
@Test | @Test | ||||
public void unknownRepositoryFormatVersion() throws Exception { | public void unknownRepositoryFormatVersion() throws Exception { | ||||
FileRepository r = createWorkRepository(); | |||||
FileBasedConfig config = r.getConfig(); | |||||
Repository r = createWorkRepository(); | |||||
StoredConfig config = r.getConfig(); | |||||
config.setLong(ConfigConstants.CONFIG_CORE_SECTION, null, | config.setLong(ConfigConstants.CONFIG_CORE_SECTION, null, | ||||
ConfigConstants.CONFIG_KEY_REPO_FORMAT_VERSION, 1); | ConfigConstants.CONFIG_KEY_REPO_FORMAT_VERSION, 1); | ||||
config.save(); | config.save(); | ||||
@SuppressWarnings("resource" /* java 7 */) | @SuppressWarnings("resource" /* java 7 */) | ||||
@Test | @Test | ||||
public void absoluteGitDirRef() throws Exception { | public void absoluteGitDirRef() throws Exception { | ||||
FileRepository repo1 = createWorkRepository(); | |||||
Repository repo1 = createWorkRepository(); | |||||
File dir = createTempDirectory("dir"); | File dir = createTempDirectory("dir"); | ||||
File dotGit = new File(dir, Constants.DOT_GIT); | File dotGit = new File(dir, Constants.DOT_GIT); | ||||
new FileWriter(dotGit).append( | new FileWriter(dotGit).append( | ||||
@SuppressWarnings("resource" /* java 7 */) | @SuppressWarnings("resource" /* java 7 */) | ||||
@Test | @Test | ||||
public void relativeGitDirRef() throws Exception { | public void relativeGitDirRef() throws Exception { | ||||
FileRepository repo1 = createWorkRepository(); | |||||
Repository repo1 = createWorkRepository(); | |||||
File dir = new File(repo1.getWorkTree(), "dir"); | File dir = new File(repo1.getWorkTree(), "dir"); | ||||
assertTrue(dir.mkdir()); | assertTrue(dir.mkdir()); | ||||
File dotGit = new File(dir, Constants.DOT_GIT); | File dotGit = new File(dir, Constants.DOT_GIT); | ||||
@SuppressWarnings("resource" /* java 7 */) | @SuppressWarnings("resource" /* java 7 */) | ||||
@Test | @Test | ||||
public void scanWithGitDirRef() throws Exception { | public void scanWithGitDirRef() throws Exception { | ||||
FileRepository repo1 = createWorkRepository(); | |||||
Repository repo1 = createWorkRepository(); | |||||
File dir = createTempDirectory("dir"); | File dir = createTempDirectory("dir"); | ||||
File dotGit = new File(dir, Constants.DOT_GIT); | File dotGit = new File(dir, Constants.DOT_GIT); | ||||
new FileWriter(dotGit).append( | new FileWriter(dotGit).append( |
import org.eclipse.jgit.api.Git; | import org.eclipse.jgit.api.Git; | ||||
import org.eclipse.jgit.internal.JGitText; | import org.eclipse.jgit.internal.JGitText; | ||||
import org.eclipse.jgit.internal.storage.file.FileRepository; | |||||
import org.eclipse.jgit.internal.storage.file.GC; | |||||
import org.eclipse.jgit.internal.storage.file.LockFile; | |||||
import org.eclipse.jgit.internal.storage.file.PackFile; | |||||
import org.eclipse.jgit.internal.storage.file.PackIndex; | |||||
import org.eclipse.jgit.internal.storage.file.RefDirectory; | |||||
import org.eclipse.jgit.internal.storage.file.RefDirectoryUpdate; | |||||
import org.eclipse.jgit.internal.storage.file.GC.RepoStatistics; | import org.eclipse.jgit.internal.storage.file.GC.RepoStatistics; | ||||
import org.eclipse.jgit.internal.storage.file.PackIndex.MutableEntry; | import org.eclipse.jgit.internal.storage.file.PackIndex.MutableEntry; | ||||
import org.eclipse.jgit.junit.LocalDiskRepositoryTestCase; | import org.eclipse.jgit.junit.LocalDiskRepositoryTestCase; |
import org.eclipse.jgit.lib.ObjectInserter; | import org.eclipse.jgit.lib.ObjectInserter; | ||||
import org.eclipse.jgit.lib.ObjectLoader; | import org.eclipse.jgit.lib.ObjectLoader; | ||||
import org.eclipse.jgit.lib.ObjectStream; | import org.eclipse.jgit.lib.ObjectStream; | ||||
import org.eclipse.jgit.lib.Repository; | |||||
import org.eclipse.jgit.revwalk.RevBlob; | import org.eclipse.jgit.revwalk.RevBlob; | ||||
import org.eclipse.jgit.storage.file.WindowCacheConfig; | import org.eclipse.jgit.storage.file.WindowCacheConfig; | ||||
import org.eclipse.jgit.transport.PackParser; | import org.eclipse.jgit.transport.PackParser; | ||||
private TestRng rng; | private TestRng rng; | ||||
private FileRepository repo; | |||||
private Repository repo; | |||||
private TestRepository<FileRepository> tr; | |||||
private TestRepository<Repository> tr; | |||||
private WindowCursor wc; | private WindowCursor wc; | ||||
WindowCache.reconfigure(cfg); | WindowCache.reconfigure(cfg); | ||||
repo = createBareRepository(); | repo = createBareRepository(); | ||||
tr = new TestRepository<FileRepository>(repo); | |||||
tr = new TestRepository<Repository>(repo); | |||||
wc = (WindowCursor) repo.newObjectReader(); | wc = (WindowCursor) repo.newObjectReader(); | ||||
} | } | ||||
import org.eclipse.jgit.dircache.DirCacheEditor.PathEdit; | import org.eclipse.jgit.dircache.DirCacheEditor.PathEdit; | ||||
import org.eclipse.jgit.dircache.DirCacheEntry; | import org.eclipse.jgit.dircache.DirCacheEntry; | ||||
import org.eclipse.jgit.errors.ConfigInvalidException; | import org.eclipse.jgit.errors.ConfigInvalidException; | ||||
import org.eclipse.jgit.internal.storage.file.FileRepository; | |||||
import org.eclipse.jgit.junit.RepositoryTestCase; | import org.eclipse.jgit.junit.RepositoryTestCase; | ||||
import org.eclipse.jgit.junit.TestRepository; | import org.eclipse.jgit.junit.TestRepository; | ||||
import org.eclipse.jgit.lib.Config; | import org.eclipse.jgit.lib.Config; | ||||
* Unit tests of {@link SubmoduleWalk} | * Unit tests of {@link SubmoduleWalk} | ||||
*/ | */ | ||||
public class SubmoduleWalkTest extends RepositoryTestCase { | public class SubmoduleWalkTest extends RepositoryTestCase { | ||||
private TestRepository<FileRepository> testDb; | |||||
private TestRepository<Repository> testDb; | |||||
@Before | @Before | ||||
public void setUp() throws Exception { | public void setUp() throws Exception { | ||||
super.setUp(); | super.setUp(); | ||||
testDb = new TestRepository<FileRepository>(db); | |||||
testDb = new TestRepository<Repository>(db); | |||||
} | } | ||||
@Test | @Test |
import java.util.Collections; | import java.util.Collections; | ||||
import java.util.List; | import java.util.List; | ||||
import org.eclipse.jgit.internal.storage.file.FileRepository; | |||||
import org.eclipse.jgit.junit.SampleDataRepositoryTestCase; | import org.eclipse.jgit.junit.SampleDataRepositoryTestCase; | ||||
import org.eclipse.jgit.lib.Config; | import org.eclipse.jgit.lib.Config; | ||||
import org.eclipse.jgit.lib.ObjectId; | import org.eclipse.jgit.lib.ObjectId; | ||||
import org.eclipse.jgit.lib.Repository; | |||||
import org.junit.After; | import org.junit.After; | ||||
import org.junit.Before; | import org.junit.Before; | ||||
import org.junit.Test; | import org.junit.Test; | ||||
@Test | @Test | ||||
public void testLocalTransportWithRelativePath() throws Exception { | public void testLocalTransportWithRelativePath() throws Exception { | ||||
FileRepository other = createWorkRepository(); | |||||
Repository other = createWorkRepository(); | |||||
String otherDir = other.getWorkTree().getName(); | String otherDir = other.getWorkTree().getName(); | ||||
RemoteConfig config = new RemoteConfig(db.getConfig(), "other"); | RemoteConfig config = new RemoteConfig(db.getConfig(), "other"); |
import org.eclipse.jgit.dircache.DirCache; | import org.eclipse.jgit.dircache.DirCache; | ||||
import org.eclipse.jgit.dircache.DirCacheEditor; | import org.eclipse.jgit.dircache.DirCacheEditor; | ||||
import org.eclipse.jgit.dircache.DirCacheEditor.PathEdit; | |||||
import org.eclipse.jgit.dircache.DirCacheEntry; | import org.eclipse.jgit.dircache.DirCacheEntry; | ||||
import org.eclipse.jgit.dircache.DirCacheIterator; | import org.eclipse.jgit.dircache.DirCacheIterator; | ||||
import org.eclipse.jgit.dircache.DirCacheEditor.PathEdit; | |||||
import org.eclipse.jgit.internal.storage.file.FileRepository; | |||||
import org.eclipse.jgit.junit.LocalDiskRepositoryTestCase; | import org.eclipse.jgit.junit.LocalDiskRepositoryTestCase; | ||||
import org.eclipse.jgit.lib.Constants; | import org.eclipse.jgit.lib.Constants; | ||||
import org.eclipse.jgit.lib.FileMode; | import org.eclipse.jgit.lib.FileMode; | ||||
import org.eclipse.jgit.lib.ObjectId; | import org.eclipse.jgit.lib.ObjectId; | ||||
import org.eclipse.jgit.lib.Repository; | |||||
import org.eclipse.jgit.treewalk.TreeWalk; | import org.eclipse.jgit.treewalk.TreeWalk; | ||||
import org.junit.Before; | import org.junit.Before; | ||||
import org.junit.Test; | import org.junit.Test; | ||||
public class InterIndexDiffFilterTest extends LocalDiskRepositoryTestCase { | public class InterIndexDiffFilterTest extends LocalDiskRepositoryTestCase { | ||||
private FileRepository db; | |||||
private Repository db; | |||||
@Before | @Before | ||||
public void setUp() throws Exception { | public void setUp() throws Exception { |
import org.eclipse.jgit.errors.NotSupportedException; | import org.eclipse.jgit.errors.NotSupportedException; | ||||
import org.eclipse.jgit.errors.TransportException; | import org.eclipse.jgit.errors.TransportException; | ||||
import org.eclipse.jgit.internal.JGitText; | import org.eclipse.jgit.internal.JGitText; | ||||
import org.eclipse.jgit.internal.storage.file.FileRepository; | |||||
import org.eclipse.jgit.lib.Repository; | import org.eclipse.jgit.lib.Repository; | ||||
import org.eclipse.jgit.lib.RepositoryBuilder; | |||||
import org.eclipse.jgit.lib.RepositoryCache; | import org.eclipse.jgit.lib.RepositoryCache; | ||||
import org.eclipse.jgit.util.io.MessageWriter; | import org.eclipse.jgit.util.io.MessageWriter; | ||||
import org.eclipse.jgit.util.io.SafeBufferedOutputStream; | import org.eclipse.jgit.util.io.SafeBufferedOutputStream; | ||||
final Repository dst; | final Repository dst; | ||||
try { | try { | ||||
dst = new FileRepository(remoteGitDir); | |||||
dst = new RepositoryBuilder().setGitDir(remoteGitDir).build(); | |||||
} catch (IOException err) { | } catch (IOException err) { | ||||
throw new TransportException(uri, JGitText.get().notAGitDirectory); | throw new TransportException(uri, JGitText.get().notAGitDirectory); | ||||
} | } | ||||
final Repository dst; | final Repository dst; | ||||
try { | try { | ||||
dst = new FileRepository(remoteGitDir); | |||||
dst = new RepositoryBuilder().setGitDir(remoteGitDir).build(); | |||||
} catch (IOException err) { | } catch (IOException err) { | ||||
throw new TransportException(uri, JGitText.get().notAGitDirectory); | throw new TransportException(uri, JGitText.get().notAGitDirectory); | ||||
} | } |