@ -248,12 +248,11 @@ public class RepoCommandTest extends RepositoryTestCase {
@Test
public void testBareRepo ( ) throws Exception {
try (
Repository remoteDb = createBareRepository ( ) ;
Repository tempDb = createWorkRepository ( ) ) {
Repository tempDb = createWorkRepository ( ) ;
StringBuilder xmlContent = new StringBuilder ( ) ;
xmlContent
. append ( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" )
xmlContent . append ( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" )
. append ( "<manifest>" )
. append ( "<remote name=\"remote1\" fetch=\".\" />" )
. append ( "<default revision=\"master\" remote=\"remote1\" />" )
@ -274,20 +273,17 @@ public class RepoCommandTest extends RepositoryTestCase {
File gitmodules = new File ( localDb . getWorkTree ( ) , ".gitmodules" ) ;
assertTrue ( "The .gitmodules file should exist" , gitmodules . exists ( ) ) ;
// The first line of .gitmodules file should be expected
BufferedReader reader = new BufferedReader ( new FileReader (
gitmodules ) ) ;
BufferedReader reader = new BufferedReader ( new FileReader ( gitmodules ) ) ;
String content = reader . readLine ( ) ;
reader . close ( ) ;
assertEquals (
"The first line of .gitmodules file should be as expected" ,
assertEquals ( "The first line of .gitmodules file should be as expected" ,
"[submodule \"foo\"]" , content ) ;
// The gitlink should be the same as remote head sha1
String gitlink = localDb . resolve ( Constants . HEAD + ":foo" ) . name ( ) ;
localDb . close ( ) ;
String remote = defaultDb . resolve ( Constants . HEAD ) . name ( ) ;
assertEquals ( "The gitlink should be the same as remote head" ,
remote , gitlink ) ;
}
assertEquals ( "The gitlink should be the same as remote head" , remote ,
gitlink ) ;
}
@Test
@ -370,9 +366,9 @@ public class RepoCommandTest extends RepositoryTestCase {
@Test
public void testRevisionBare ( ) throws Exception {
try (
Repository remoteDb = createBareRepository ( ) ;
Repository tempDb = createWorkRepository ( ) ) {
Repository tempDb = createWorkRepository ( ) ;
StringBuilder xmlContent = new StringBuilder ( ) ;
xmlContent . append ( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" )
. append ( "<manifest>" )
@ -395,19 +391,17 @@ public class RepoCommandTest extends RepositoryTestCase {
// The gitlink should be the same as oldCommitId
String gitlink = localDb . resolve ( Constants . HEAD + ":foo" ) . name ( ) ;
localDb . close ( ) ;
assertEquals ( "The gitlink is same as remote head" ,
oldCommitId . name ( ) , gitlink ) ;
}
assertEquals ( "The gitlink is same as remote head" , oldCommitId . name ( ) ,
gitlink ) ;
}
@Test
public void testCopyFileBare ( ) throws Exception {
try (
Repository remoteDb = createBareRepository ( ) ;
Repository tempDb = createWorkRepository ( ) ) {
Repository tempDb = createWorkRepository ( ) ;
StringBuilder xmlContent = new StringBuilder ( ) ;
xmlContent
. append ( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" )
xmlContent . append ( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" )
. append ( "<manifest>" )
. append ( "<remote name=\"remote1\" fetch=\".\" />" )
. append ( "<default revision=\"master\" remote=\"remote1\" />" )
@ -432,8 +426,7 @@ public class RepoCommandTest extends RepositoryTestCase {
assertTrue ( "The Hello file should exist" , hello . exists ( ) ) ;
// The foo/Hello file should be skipped.
File foohello = new File ( localDb . getWorkTree ( ) , "foo/Hello" ) ;
assertFalse (
"The foo/Hello file should be skipped" , foohello . exists ( ) ) ;
assertFalse ( "The foo/Hello file should be skipped" , foohello . exists ( ) ) ;
localDb . close ( ) ;
// The content of Hello file should be expected
BufferedReader reader = new BufferedReader ( new FileReader ( hello ) ) ;
@ -442,16 +435,14 @@ public class RepoCommandTest extends RepositoryTestCase {
assertEquals ( "The Hello file should have expected content" ,
"branch world" , content ) ;
}
}
@Test
public void testReplaceManifestBare ( ) throws Exception {
try (
Repository remoteDb = createBareRepository ( ) ;
Repository tempDb = createWorkRepository ( ) ) {
Repository tempDb = createWorkRepository ( ) ;
StringBuilder xmlContent = new StringBuilder ( ) ;
xmlContent
. append ( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" )
xmlContent . append ( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" )
. append ( "<manifest>" )
. append ( "<remote name=\"remote1\" fetch=\".\" />" )
. append ( "<default revision=\"master\" remote=\"remote1\" />" )
@ -459,26 +450,20 @@ public class RepoCommandTest extends RepositoryTestCase {
. append ( "\" revision=\"" ) . append ( BRANCH ) . append ( "\" >" )
. append ( "<copyfile src=\"hello.txt\" dest=\"Hello\" />" )
. append ( "</project>" ) . append ( "</manifest>" ) ;
JGitTestUtil . writeTrashFile ( tempDb , "old.xml" ,
xmlContent . toString ( ) ) ;
JGitTestUtil . writeTrashFile ( tempDb , "old.xml" , xmlContent . toString ( ) ) ;
RepoCommand command = new RepoCommand ( remoteDb ) ;
command . setPath ( tempDb . getWorkTree ( ) . getAbsolutePath ( ) + "/old.xml" )
. setURI ( rootUri ) . call ( ) ;
xmlContent = new StringBuilder ( ) ;
xmlContent
. append ( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" )
xmlContent . append ( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" )
. append ( "<manifest>" )
. append ( "<remote name=\"remote1\" fetch=\".\" />" )
. append ( "<default revision=\"master\" remote=\"remote1\" />" )
. append ( "<project path=\"bar\" name=\"" )
. append ( defaultUri )
. append ( "\" revision=\"" )
. append ( BRANCH )
. append ( "\" >" )
. append ( "<project path=\"bar\" name=\"" ) . append ( defaultUri )
. append ( "\" revision=\"" ) . append ( BRANCH ) . append ( "\" >" )
. append ( "<copyfile src=\"hello.txt\" dest=\"Hello.txt\" />" )
. append ( "</project>" ) . append ( "</manifest>" ) ;
JGitTestUtil . writeTrashFile ( tempDb , "new.xml" ,
xmlContent . toString ( ) ) ;
JGitTestUtil . writeTrashFile ( tempDb , "new.xml" , xmlContent . toString ( ) ) ;
command = new RepoCommand ( remoteDb ) ;
command . setPath ( tempDb . getWorkTree ( ) . getAbsolutePath ( ) + "/new.xml" )
. setURI ( rootUri ) . call ( ) ;
@ -499,8 +484,7 @@ public class RepoCommandTest extends RepositoryTestCase {
File dotmodules = new File ( localDb . getWorkTree ( ) ,
Constants . DOT_GIT_MODULES ) ;
localDb . close ( ) ;
BufferedReader reader = new BufferedReader ( new FileReader (
dotmodules ) ) ;
BufferedReader reader = new BufferedReader ( new FileReader ( dotmodules ) ) ;
boolean foo = false ;
boolean bar = false ;
while ( true ) {
@ -516,24 +500,22 @@ public class RepoCommandTest extends RepositoryTestCase {
assertTrue ( "The bar submodule should exist" , bar ) ;
assertFalse ( "The foo submodule shouldn't exist" , foo ) ;
}
}
@Test
public void testRemoveOverlappingBare ( ) throws Exception {
try (
Repository remoteDb = createBareRepository ( ) ;
Repository tempDb = createWorkRepository ( ) ) {
Repository tempDb = createWorkRepository ( ) ;
StringBuilder xmlContent = new StringBuilder ( ) ;
xmlContent
. append ( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" )
xmlContent . append ( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" )
. append ( "<manifest>" )
. append ( "<remote name=\"remote1\" fetch=\".\" />" )
. append ( "<default revision=\"master\" remote=\"remote1\" />" )
. append ( "<project path=\"foo/bar\" name=\"" )
. append ( groupBUri ) . append ( "\" /> " )
. append ( "<project path=\"a\" name=\"" ) . append ( groupAUri )
. append ( "\" />" ) . append ( "<project path=\"foo\" name=\"" )
. append ( defaultUri ) . append ( "\" />" ) . append ( "</manifest>" ) ;
. append ( "<project path=\"foo/bar\" name=\"" ) . append ( groupBUri )
. append ( "\" />" ) . append ( "<project path=\"a\" name=\" " )
. append ( groupAUri ) . append ( "\" />" )
. append ( "<project path=\"foo\" name=\"" ) . append ( defaultUri )
. append ( "\" />" ) . append ( "</manifest>" ) ;
JGitTestUtil . writeTrashFile ( tempDb , "manifest.xml" ,
xmlContent . toString ( ) ) ;
RepoCommand command = new RepoCommand ( remoteDb ) ;
@ -551,8 +533,7 @@ public class RepoCommandTest extends RepositoryTestCase {
File dotmodules = new File ( localDb . getWorkTree ( ) ,
Constants . DOT_GIT_MODULES ) ;
localDb . close ( ) ;
BufferedReader reader = new BufferedReader ( new FileReader (
dotmodules ) ) ;
BufferedReader reader = new BufferedReader ( new FileReader ( dotmodules ) ) ;
boolean foo = false ;
boolean foobar = false ;
boolean a = false ;
@ -572,7 +553,6 @@ public class RepoCommandTest extends RepositoryTestCase {
assertFalse ( "The foo/bar submodule shouldn't exist" , foobar ) ;
assertTrue ( "The a submodule should exist" , a ) ;
}
}
@Test
public void testIncludeTag ( ) throws Exception {
@ -670,13 +650,12 @@ public class RepoCommandTest extends RepositoryTestCase {
@Test
public void testTargetBranch ( ) throws Exception {
try (
Repository remoteDb1 = createBareRepository ( ) ;
Repository remoteDb2 = createBareRepository ( ) ;
Repository tempDb = createWorkRepository ( ) ) {
Repository tempDb = createWorkRepository ( ) ;
StringBuilder xmlContent = new StringBuilder ( ) ;
xmlContent
. append ( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" )
xmlContent . append ( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" )
. append ( "<manifest>" )
. append ( "<remote name=\"remote1\" fetch=\".\" />" )
. append ( "<default revision=\"master\" remote=\"remote1\" />" )
@ -685,102 +664,91 @@ public class RepoCommandTest extends RepositoryTestCase {
JGitTestUtil . writeTrashFile ( tempDb , "manifest.xml" ,
xmlContent . toString ( ) ) ;
RepoCommand command = new RepoCommand ( remoteDb1 ) ;
command
. setPath ( tempDb . getWorkTree ( ) . getAbsolutePath ( ) + "/manifest.xml" )
. setURI ( rootUri )
. setTargetBranch ( "test" )
. call ( ) ;
ObjectId branchId = remoteDb1 . resolve (
Constants . R_HEADS + "test^{tree}" ) ;
command . setPath (
tempDb . getWorkTree ( ) . getAbsolutePath ( ) + "/manifest.xml" )
. setURI ( rootUri ) . setTargetBranch ( "test" ) . call ( ) ;
ObjectId branchId = remoteDb1
. resolve ( Constants . R_HEADS + "test^{tree}" ) ;
command = new RepoCommand ( remoteDb2 ) ;
command
. setPath ( tempDb . getWorkTree ( ) . getAbsolutePath ( ) + "/manifest.xml" )
. setURI ( rootUri )
. call ( ) ;
command . setPath (
tempDb . getWorkTree ( ) . getAbsolutePath ( ) + "/manifest.xml" )
. setURI ( rootUri ) . call ( ) ;
ObjectId defaultId = remoteDb2 . resolve ( Constants . HEAD + "^{tree}" ) ;
assertEquals (
"The tree id of branch db and default db should be the same" ,
branchId , defaultId ) ;
}
}
@Test
public void testRecordRemoteBranch ( ) throws Exception {
try (
Repository remoteDb = createBareRepository ( ) ;
Repository tempDb = createWorkRepository ( ) ) {
Repository tempDb = createWorkRepository ( ) ;
StringBuilder xmlContent = new StringBuilder ( ) ;
xmlContent
. append ( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" )
xmlContent . append ( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" )
. append ( "<manifest>" )
. append ( "<remote name=\"remote1\" fetch=\".\" />" )
. append ( "<default revision=\"master\" remote=\"remote1\" />" )
. append ( "<project path=\"with-branch\" " )
. append ( "revision=\"master\" " )
. append ( "name=\"" ) . append ( notDefaultUri ) . append ( "\" />" )
. append ( "revision=\"master\" " ) . append ( "name=\" " )
. append ( notDefaultUri ) . append ( "\" />" )
. append ( "<project path=\"with-long-branch\" " )
. append ( "revision=\"refs/heads/master\" " )
. append ( "name=\"" ) . append ( defaultUri ) . append ( "\" />" )
. append ( "</manifest>" ) ;
. append ( "revision=\"refs/heads/master\" " ) . append ( "name=\"" )
. append ( defaultUri ) . append ( "\" />" ) . append ( "</manifest>" ) ;
JGitTestUtil . writeTrashFile ( tempDb , "manifest.xml" ,
xmlContent . toString ( ) ) ;
RepoCommand command = new RepoCommand ( remoteDb ) ;
command . setPath ( tempDb . getWorkTree ( ) . getAbsolutePath ( ) + "/manifest.xml" )
. setURI ( rootUri )
. setRecordRemoteBranch ( true )
. call ( ) ;
command . setPath (
tempDb . getWorkTree ( ) . getAbsolutePath ( ) + "/manifest.xml" )
. setURI ( rootUri ) . setRecordRemoteBranch ( true ) . call ( ) ;
// Clone it
File directory = createTempDirectory ( "testBareRepo" ) ;
try ( Repository localDb = Git . cloneRepository ( )
. setDirectory ( directory )
try ( Repository localDb = Git . cloneRepository ( ) . setDirectory ( directory )
. setURI ( remoteDb . getDirectory ( ) . toURI ( ) . toString ( ) ) . call ( )
. getRepository ( ) ; ) {
// The .gitmodules file should exist
File gitmodules = new File ( localDb . getWorkTree ( ) ,
".gitmodules" ) ;
File gitmodules = new File ( localDb . getWorkTree ( ) , ".gitmodules" ) ;
assertTrue ( "The .gitmodules file should exist" ,
gitmodules . exists ( ) ) ;
FileBasedConfig c = new FileBasedConfig ( gitmodules ,
FS . DETECTED ) ;
FileBasedConfig c = new FileBasedConfig ( gitmodules , FS . DETECTED ) ;
c . load ( ) ;
assertEquals ( "Recording remote branches should work for short branch descriptions" , "master" ,
assertEquals (
"Recording remote branches should work for short branch descriptions" ,
"master" ,
c . getString ( "submodule" , "with-branch" , "branch" ) ) ;
assertEquals ( "Recording remote branches should work for full ref specs" , "refs/heads/master" ,
assertEquals (
"Recording remote branches should work for full ref specs" ,
"refs/heads/master" ,
c . getString ( "submodule" , "with-long-branch" , "branch" ) ) ;
}
}
}
@Test
public void testRecordSubmoduleLabels ( ) throws Exception {
try (
Repository remoteDb = createBareRepository ( ) ;
Repository tempDb = createWorkRepository ( ) ) {
Repository tempDb = createWorkRepository ( ) ;
StringBuilder xmlContent = new StringBuilder ( ) ;
xmlContent
. append ( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" )
xmlContent . append ( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" )
. append ( "<manifest>" )
. append ( "<remote name=\"remote1\" fetch=\".\" />" )
. append ( "<default revision=\"master\" remote=\"remote1\" />" )
. append ( "<project path=\"test\" " )
. append ( "revision=\"master\" " )
. append ( "name=\"" ) . append ( notDefaultUri ) . append ( "\" " )
. append ( "groups=\"a1,a2\" />" )
. append ( "</manifest>" ) ;
. append ( "revision=\"master\" " ) . append ( "name=\"" )
. append ( notDefaultUri ) . append ( "\" " )
. append ( "groups=\"a1,a2\" />" ) . append ( "</manifest>" ) ;
JGitTestUtil . writeTrashFile ( tempDb , "manifest.xml" ,
xmlContent . toString ( ) ) ;
RepoCommand command = new RepoCommand ( remoteDb ) ;
command . setPath ( tempDb . getWorkTree ( ) . getAbsolutePath ( ) + "/manifest.xml" )
. setURI ( rootUri )
. setRecordSubmoduleLabels ( true )
. call ( ) ;
command . setPath (
tempDb . getWorkTree ( ) . getAbsolutePath ( ) + "/manifest.xml" )
. setURI ( rootUri ) . setRecordSubmoduleLabels ( true ) . call ( ) ;
// Clone it
File directory = createTempDirectory ( "testBareRepo" ) ;
try ( Repository localDb = Git . cloneRepository ( )
. setDirectory ( directory )
try ( Repository localDb = Git . cloneRepository ( ) . setDirectory ( directory )
. setURI ( remoteDb . getDirectory ( ) . toURI ( ) . toString ( ) ) . call ( )
. getRepository ( ) ; ) {
// The .gitattributes file should exist
@ -796,46 +764,38 @@ public class RepoCommandTest extends RepositoryTestCase {
}
}
}
}
@Test
public void testRecordShallowRecommendation ( ) throws Exception {
try (
Repository remoteDb = createBareRepository ( ) ;
Repository tempDb = createWorkRepository ( ) ) {
Repository tempDb = createWorkRepository ( ) ;
StringBuilder xmlContent = new StringBuilder ( ) ;
xmlContent
. append ( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" )
xmlContent . append ( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" )
. append ( "<manifest>" )
. append ( "<remote name=\"remote1\" fetch=\".\" />" )
. append ( "<default revision=\"master\" remote=\"remote1\" />" )
. append ( "<project path=\"shallow-please\" " )
. append ( "name=\"" ) . append ( defaultUri ) . append ( "\" " )
. append ( "clone-depth=\"1\" />" )
. append ( "<project path=\"non-shallow\" " )
. append ( "name=\"" ) . append ( defaultUri ) . append ( "\" />" )
. append ( "</manifest>" ) ;
. append ( "<project path=\"shallow-please\" " ) . append ( "name=\"" )
. append ( defaultUri ) . append ( "\" " ) . append ( "clone-depth=\"1\" />" )
. append ( "<project path=\"non-shallow\" " ) . append ( "name=\"" )
. append ( defaultUri ) . append ( "\" />" ) . append ( "</manifest>" ) ;
JGitTestUtil . writeTrashFile ( tempDb , "manifest.xml" ,
xmlContent . toString ( ) ) ;
RepoCommand command = new RepoCommand ( remoteDb ) ;
command . setPath ( tempDb . getWorkTree ( ) . getAbsolutePath ( ) + "/manifest.xml" )
. setURI ( rootUri )
. setRecommendShallow ( true )
. call ( ) ;
command . setPath (
tempDb . getWorkTree ( ) . getAbsolutePath ( ) + "/manifest.xml" )
. setURI ( rootUri ) . setRecommendShallow ( true ) . call ( ) ;
// Clone it
File directory = createTempDirectory ( "testBareRepo" ) ;
try ( Repository localDb = Git . cloneRepository ( )
. setDirectory ( directory )
try ( Repository localDb = Git . cloneRepository ( ) . setDirectory ( directory )
. setURI ( remoteDb . getDirectory ( ) . toURI ( ) . toString ( ) ) . call ( )
. getRepository ( ) ; ) {
// The .gitmodules file should exist
File gitmodules = new File ( localDb . getWorkTree ( ) ,
".gitmodules" ) ;
File gitmodules = new File ( localDb . getWorkTree ( ) , ".gitmodules" ) ;
assertTrue ( "The .gitmodules file should exist" ,
gitmodules . exists ( ) ) ;
FileBasedConfig c = new FileBasedConfig ( gitmodules ,
FS . DETECTED ) ;
FileBasedConfig c = new FileBasedConfig ( gitmodules , FS . DETECTED ) ;
c . load ( ) ;
assertEquals ( "Recording shallow configuration should work" , "true" ,
c . getString ( "submodule" , "shallow-please" , "shallow" ) ) ;
@ -843,7 +803,6 @@ public class RepoCommandTest extends RepositoryTestCase {
c . getString ( "submodule" , "non-shallow" , "shallow" ) ) ;
}
}
}
@Test
public void testRemoteRevision ( ) throws Exception {