You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by im...@apache.org on 2014/07/20 13:57:10 UTC

[5/7] git commit: add test case for MRELEASE-875

add test case for MRELEASE-875


Project: http://git-wip-us.apache.org/repos/asf/maven-scm/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven-scm/commit/bea863c4
Tree: http://git-wip-us.apache.org/repos/asf/maven-scm/tree/bea863c4
Diff: http://git-wip-us.apache.org/repos/asf/maven-scm/diff/bea863c4

Branch: refs/heads/MRELEASE-875
Commit: bea863c42c525e90daa818765bbf38a9d1d4420d
Parents: 0128678
Author: imod <do...@fortysix.ch>
Authored: Sun Jul 20 13:06:17 2014 +0200
Committer: imod <do...@fortysix.ch>
Committed: Sun Jul 20 13:07:54 2014 +0200

----------------------------------------------------------------------
 .../provider/git/AbstractGitScmProvider.java    |   1 +
 ...itExeCheckInCommandNotInRepoRootTckTest.java | 232 ++++++++++++++++++
 ...GitCheckInCommandCommitterAuthorTckTest.java |   2 +-
 .../JGitCheckInCommandNotInRepoRootTckTest.java | 245 +++++++++++++++++++
 .../command/checkin/CheckInCommandTckTest.java  |   6 +-
 5 files changed, 482 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven-scm/blob/bea863c4/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-git-commons/src/main/java/org/apache/maven/scm/provider/git/AbstractGitScmProvider.java
----------------------------------------------------------------------
diff --git a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-git-commons/src/main/java/org/apache/maven/scm/provider/git/AbstractGitScmProvider.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-git-commons/src/main/java/org/apache/maven/scm/provider/git/AbstractGitScmProvider.java
index 7451d97..85fabe6 100644
--- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-git-commons/src/main/java/org/apache/maven/scm/provider/git/AbstractGitScmProvider.java
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-git-commons/src/main/java/org/apache/maven/scm/provider/git/AbstractGitScmProvider.java
@@ -46,6 +46,7 @@ import org.apache.maven.scm.provider.AbstractScmProvider;
 import org.apache.maven.scm.provider.ScmProviderRepository;
 import org.apache.maven.scm.provider.git.command.GitCommand;
 import org.apache.maven.scm.provider.git.repository.GitScmProviderRepository;
+import org.apache.maven.scm.provider.git.util.GitUtil;
 import org.apache.maven.scm.repository.ScmRepositoryException;
 import org.apache.maven.scm.repository.UnknownRepositoryStructure;
 

http://git-wip-us.apache.org/repos/asf/maven-scm/blob/bea863c4/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/checkin/GitExeCheckInCommandNotInRepoRootTckTest.java
----------------------------------------------------------------------
diff --git a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/checkin/GitExeCheckInCommandNotInRepoRootTckTest.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/checkin/GitExeCheckInCommandNotInRepoRootTckTest.java
new file mode 100644
index 0000000..40b0d2e
--- /dev/null
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/checkin/GitExeCheckInCommandNotInRepoRootTckTest.java
@@ -0,0 +1,232 @@
+package org.apache.maven.scm.provider.git.gitexe.command.checkin;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.maven.scm.ScmFile;
+import org.apache.maven.scm.ScmFileSet;
+import org.apache.maven.scm.ScmFileStatus;
+import org.apache.maven.scm.command.add.AddScmResult;
+import org.apache.maven.scm.command.checkin.CheckInScmResult;
+import org.apache.maven.scm.command.checkout.CheckOutScmResult;
+import org.apache.maven.scm.provider.git.GitScmTestUtils;
+import org.apache.maven.scm.provider.git.command.checkin.GitCheckInCommandTckTest;
+import org.codehaus.plexus.PlexusTestCase;
+
+/**
+ * Tests for MRELEASE-875
+ * 
+ * @author Dominik Bartholdi (imod)
+ */
+public class GitExeCheckInCommandNotInRepoRootTckTest
+    extends GitCheckInCommandTckTest
+{
+
+    /**
+     * {@inheritDoc}
+     */
+    public String getScmUrl()
+        throws Exception
+    {
+        return GitScmTestUtils.getScmUrl( getRepositoryRoot(), "git" );
+    }
+
+    private File getSubWorkingDir()
+    {
+        return new File( getWorkingCopy(), "sub1/sub2/" );
+    }
+
+    public void testCheckInCommandTest()
+        throws Exception
+    {
+        // Make sure that the correct files was checked out
+        File fooJava = new File( getWorkingCopy(), "sub1/sub2/src/main/java/Foo.java" );
+
+        File barJava = new File( getWorkingCopy(), "sub1/sub2/src/main/java/Bar.java" );
+
+        File readmeTxt = new File( getWorkingCopy(), "sub1/sub2/readme.txt" );
+
+        assertFalse( "check Foo.java doesn't yet exist", fooJava.canRead() );
+
+        assertFalse( "check Bar.java doesn't yet exist", barJava.canRead() );
+
+        assertTrue( "check can read readme.txt", readmeTxt.canRead() );
+
+        // Change the files
+        createFooJava( fooJava );
+
+        createBarJava( barJava );
+
+        changeReadmeTxt( readmeTxt );
+
+        AddScmResult addResult =
+            getScmManager().add( getScmRepository(),
+                                 new ScmFileSet( getSubWorkingDir(), "src/main/java/Foo.java", null ) );
+
+        assertResultIsSuccess( addResult );
+
+        //
+        CheckInScmResult result =
+            getScmManager().checkIn( getScmRepository(), new ScmFileSet( getSubWorkingDir() ), "Commit message" );
+
+        assertResultIsSuccess( result );
+
+        List<ScmFile> files = result.getCheckedInFiles();
+
+        assertNotNull( files );
+
+        assertEquals( 2, files.size() );
+
+        Map<String, ScmFile> fileMap = mapFilesByPath( files );
+        ScmFile file1 = fileMap.get( "sub1/sub2/src/main/java/Foo.java" );
+        assertNotNull( file1 );
+        assertEquals( ScmFileStatus.CHECKED_IN, file1.getStatus() );
+
+        ScmFile file2 = fileMap.get( "sub1/sub2/readme.txt" );
+        assertNotNull( file2 );
+        assertEquals( ScmFileStatus.CHECKED_IN, file2.getStatus() );
+
+        CheckOutScmResult checkoutResult =
+            getScmManager().checkOut( getScmRepository(), new ScmFileSet( getAssertionCopy() ) );
+
+        assertResultIsSuccess( checkoutResult );
+
+        fooJava = new File( getAssertionCopy(), "sub1/sub2/src/main/java/Foo.java" );
+
+        barJava = new File( getAssertionCopy(), "sub1/sub2/src/main/java/Bar.java" );
+
+        readmeTxt = new File( getAssertionCopy(), "sub1/sub2/readme.txt" );
+
+        assertTrue( "check can read Foo.java", fooJava.canRead() );
+
+        assertFalse( "check Bar.java doesn't exist", barJava.canRead() );
+
+        assertTrue( "check can read readme.txt", readmeTxt.canRead() );
+
+        assertEquals( "check readme.txt contents", "changed file",
+                      org.codehaus.plexus.util.FileUtils.fileRead( readmeTxt ) );
+    }
+
+    public void testCheckInCommandPartialFileset()
+        throws Exception
+    {
+        // Make sure that the correct files was checked out
+        File fooJava = new File( getWorkingCopy(), "sub1/sub2/src/main/java/Foo.java" );
+
+        File barJava = new File( getWorkingCopy(), "sub1/sub2/src/main/java/Bar.java" );
+
+        File readmeTxt = new File( getWorkingCopy(), "sub1/sub2/readme.txt" );
+
+        assertFalse( "check Foo.java doesn't yet exist", fooJava.canRead() );
+
+        assertFalse( "check Bar.java doesn't yet exist", barJava.canRead() );
+
+        assertTrue( "check can read readme.txt", readmeTxt.canRead() );
+
+        // Change the files
+        createFooJava( fooJava );
+
+        createBarJava( barJava );
+
+        changeReadmeTxt( readmeTxt );
+
+        AddScmResult addResult =
+            getScmManager().getProviderByUrl( getScmUrl() ).add( getScmRepository(),
+                                                                 new ScmFileSet( getSubWorkingDir(),
+                                                                                 "src/main/java/Foo.java", null ) );
+
+        assertResultIsSuccess( addResult );
+
+        CheckInScmResult result =
+            getScmManager().checkIn( getScmRepository(), new ScmFileSet( getSubWorkingDir(), "**/Foo.java", null ),
+                                     "Commit message" );
+
+        assertResultIsSuccess( result );
+
+        List<ScmFile> files = result.getCheckedInFiles();
+
+        assertNotNull( files );
+
+        assertEquals( 1, files.size() );
+
+        ScmFile file1 = files.get( 0 );
+
+        assertEquals( ScmFileStatus.CHECKED_IN, file1.getStatus() );
+
+        assertPath( "/test-repo/check-in/Foo.java", file1.getPath() );
+
+        CheckOutScmResult checkoutResult =
+            getScmManager().checkOut( getScmRepository(), new ScmFileSet( getAssertionCopy() ) );
+
+        assertResultIsSuccess( checkoutResult );
+
+        fooJava = new File( getAssertionCopy(), "sub1/sub2/src/main/java/Foo.java" );
+
+        barJava = new File( getAssertionCopy(), "sub1/sub2/src/main/java/Bar.java" );
+
+        readmeTxt = new File( getAssertionCopy(), "sub1/sub2/readme.txt" );
+
+        assertTrue( "check can read Foo.java", fooJava.canRead() );
+
+        assertFalse( "check Bar.java doesn't exist", barJava.canRead() );
+
+        assertTrue( "check can read readme.txt", readmeTxt.canRead() );
+
+        assertEquals( "check readme.txt contents", "/sub1/sub2/readme.txt",
+                      org.codehaus.plexus.util.FileUtils.fileRead( readmeTxt ) );
+    }
+
+    @Override
+    protected List<String> getScmFileNames()
+    {
+        List<String> scmFileNames = new ArrayList<String>( 4 );
+        scmFileNames.add( "/sub1/sub2/pom.xml" );
+        scmFileNames.add( "/sub1/sub2/readme.txt" );
+        scmFileNames.add( "/sub1/sub2/src/main/java/Application.java" );
+        scmFileNames.add( "/sub1/sub2/src/test/java/Test.java" );
+        return scmFileNames;
+    }
+
+    @Override
+    public void initRepo()
+        throws Exception
+    {
+        GitScmTestUtils.initRepo( "src/test/resources/repoWithSubdirs/", getRepositoryRoot(), getWorkingDirectory() );
+    }
+
+    /**
+     * @return default location of the test read/write repository
+     */
+    protected File getRepositoryRoot()
+    {
+        return PlexusTestCase.getTestFile( "target/scm-test/repositoryWithSubdirs" );
+    }
+
+    // @Test
+    // public void testCheckInWithWorkingdirNotInRepoRoot()
+    // throws Exception
+    // {
+    // System.out.println( "hello" );
+    // }
+}

http://git-wip-us.apache.org/repos/asf/maven-scm/blob/bea863c4/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/test/java/org/apache/maven/scm/provider/git/jgit/command/checkin/JGitCheckInCommandCommitterAuthorTckTest.java
----------------------------------------------------------------------
diff --git a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/test/java/org/apache/maven/scm/provider/git/jgit/command/checkin/JGitCheckInCommandCommitterAuthorTckTest.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/test/java/org/apache/maven/scm/provider/git/jgit/command/checkin/JGitCheckInCommandCommitterAuthorTckTest.java
index 10fdb85..039af7f 100644
--- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/test/java/org/apache/maven/scm/provider/git/jgit/command/checkin/JGitCheckInCommandCommitterAuthorTckTest.java
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/test/java/org/apache/maven/scm/provider/git/jgit/command/checkin/JGitCheckInCommandCommitterAuthorTckTest.java
@@ -250,7 +250,7 @@ public class JGitCheckInCommandCommitterAuthorTckTest
         return head;
     }
 
-    private void createFooJava( File fooJava )
+    protected void createFooJava( File fooJava )
         throws Exception
     {
         FileWriter output = new FileWriter( fooJava );

http://git-wip-us.apache.org/repos/asf/maven-scm/blob/bea863c4/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/test/java/org/apache/maven/scm/provider/git/jgit/command/checkin/JGitCheckInCommandNotInRepoRootTckTest.java
----------------------------------------------------------------------
diff --git a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/test/java/org/apache/maven/scm/provider/git/jgit/command/checkin/JGitCheckInCommandNotInRepoRootTckTest.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/test/java/org/apache/maven/scm/provider/git/jgit/command/checkin/JGitCheckInCommandNotInRepoRootTckTest.java
new file mode 100644
index 0000000..634ecd2
--- /dev/null
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-jgit/src/test/java/org/apache/maven/scm/provider/git/jgit/command/checkin/JGitCheckInCommandNotInRepoRootTckTest.java
@@ -0,0 +1,245 @@
+package org.apache.maven.scm.provider.git.jgit.command.checkin;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.maven.scm.ScmFile;
+import org.apache.maven.scm.ScmFileSet;
+import org.apache.maven.scm.ScmFileStatus;
+import org.apache.maven.scm.command.add.AddScmResult;
+import org.apache.maven.scm.command.checkin.CheckInScmResult;
+import org.apache.maven.scm.command.checkout.CheckOutScmResult;
+import org.apache.maven.scm.provider.git.GitScmTestUtils;
+import org.apache.maven.scm.provider.git.command.checkin.GitCheckInCommandTckTest;
+import org.codehaus.plexus.PlexusTestCase;
+import org.eclipse.jgit.util.FileUtils;
+
+/**
+ * Test for MRELEASE-875
+ * 
+ * @author <a href="mailto:struberg@yahoo.de">Mark Struberg</a>
+ * @author Dominik Bartholdi (imod)
+ */
+public class JGitCheckInCommandNotInRepoRootTckTest
+    extends GitCheckInCommandTckTest
+{
+
+    /**
+     * {@inheritDoc}
+     */
+    public String getScmUrl()
+        throws Exception
+    {
+        return GitScmTestUtils.getScmUrl( getRepositoryRoot(), "jgit" );
+    }
+
+    @Override
+    protected void deleteDirectory( File directory )
+        throws IOException
+    {
+        if ( directory.exists() )
+        {
+            FileUtils.delete( directory, FileUtils.RECURSIVE | FileUtils.RETRY );
+        }
+    }
+
+    private File getSubWorkingDir()
+    {
+        return new File( getWorkingCopy(), "sub1/sub2/" );
+    }
+
+    public void testCheckInCommandTest()
+        throws Exception
+    {
+        // Make sure that the correct files was checked out
+        File fooJava = new File( getWorkingCopy(), "sub1/sub2/src/main/java/Foo.java" );
+
+        File barJava = new File( getWorkingCopy(), "sub1/sub2/src/main/java/Bar.java" );
+
+        File readmeTxt = new File( getWorkingCopy(), "sub1/sub2/readme.txt" );
+
+        assertFalse( "check Foo.java doesn't yet exist", fooJava.canRead() );
+
+        assertFalse( "check Bar.java doesn't yet exist", barJava.canRead() );
+
+        assertTrue( "check can read readme.txt", readmeTxt.canRead() );
+
+        // Change the files
+        createFooJava( fooJava );
+
+        createBarJava( barJava );
+
+        changeReadmeTxt( readmeTxt );
+
+        AddScmResult addResult =
+            getScmManager().add( getScmRepository(),
+                                 new ScmFileSet( getSubWorkingDir(), "src/main/java/Foo.java", null ) );
+
+        assertResultIsSuccess( addResult );
+
+        //
+        CheckInScmResult result =
+            getScmManager().checkIn( getScmRepository(), new ScmFileSet( getSubWorkingDir() ), "Commit message" );
+
+        assertResultIsSuccess( result );
+
+        List<ScmFile> files = result.getCheckedInFiles();
+
+        assertNotNull( files );
+
+        assertEquals( 2, files.size() );
+
+        Map<String, ScmFile> fileMap = mapFilesByPath( files );
+        ScmFile file1 = fileMap.get( "sub1/sub2/src/main/java/Foo.java" );
+        assertNotNull( file1 );
+        assertEquals( ScmFileStatus.CHECKED_IN, file1.getStatus() );
+
+        ScmFile file2 = fileMap.get( "sub1/sub2/readme.txt" );
+        assertNotNull( file2 );
+        assertEquals( ScmFileStatus.CHECKED_IN, file2.getStatus() );
+
+        CheckOutScmResult checkoutResult =
+            getScmManager().checkOut( getScmRepository(), new ScmFileSet( getAssertionCopy() ) );
+
+        assertResultIsSuccess( checkoutResult );
+
+        fooJava = new File( getAssertionCopy(), "sub1/sub2/src/main/java/Foo.java" );
+
+        barJava = new File( getAssertionCopy(), "sub1/sub2/src/main/java/Bar.java" );
+
+        readmeTxt = new File( getAssertionCopy(), "sub1/sub2/readme.txt" );
+
+        assertTrue( "check can read Foo.java", fooJava.canRead() );
+
+        assertFalse( "check Bar.java doesn't exist", barJava.canRead() );
+
+        assertTrue( "check can read readme.txt", readmeTxt.canRead() );
+
+        assertEquals( "check readme.txt contents", "changed file",
+                      org.codehaus.plexus.util.FileUtils.fileRead( readmeTxt ) );
+    }
+
+    public void testCheckInCommandPartialFileset()
+        throws Exception
+    {
+        // Make sure that the correct files was checked out
+        File fooJava = new File( getWorkingCopy(), "sub1/sub2/src/main/java/Foo.java" );
+
+        File barJava = new File( getWorkingCopy(), "sub1/sub2/src/main/java/Bar.java" );
+
+        File readmeTxt = new File( getWorkingCopy(), "sub1/sub2/readme.txt" );
+
+        assertFalse( "check Foo.java doesn't yet exist", fooJava.canRead() );
+
+        assertFalse( "check Bar.java doesn't yet exist", barJava.canRead() );
+
+        assertTrue( "check can read readme.txt", readmeTxt.canRead() );
+
+        // Change the files
+        createFooJava( fooJava );
+
+        createBarJava( barJava );
+
+        changeReadmeTxt( readmeTxt );
+
+        AddScmResult addResult =
+            getScmManager().getProviderByUrl( getScmUrl() ).add( getScmRepository(),
+                                                                 new ScmFileSet( getSubWorkingDir(),
+                                                                                 "src/main/java/Foo.java", null ) );
+
+        assertResultIsSuccess( addResult );
+
+        CheckInScmResult result =
+            getScmManager().checkIn( getScmRepository(), new ScmFileSet( getSubWorkingDir(), "**/Foo.java", null ),
+                                     "Commit message" );
+
+        assertResultIsSuccess( result );
+
+        List<ScmFile> files = result.getCheckedInFiles();
+
+        assertNotNull( files );
+
+        assertEquals( 1, files.size() );
+
+        ScmFile file1 = files.get( 0 );
+
+        assertEquals( ScmFileStatus.CHECKED_IN, file1.getStatus() );
+
+        assertPath( "/test-repo/check-in/Foo.java", file1.getPath() );
+
+        CheckOutScmResult checkoutResult =
+            getScmManager().checkOut( getScmRepository(), new ScmFileSet( getAssertionCopy() ) );
+
+        assertResultIsSuccess( checkoutResult );
+
+        fooJava = new File( getAssertionCopy(), "sub1/sub2/src/main/java/Foo.java" );
+
+        barJava = new File( getAssertionCopy(), "sub1/sub2/src/main/java/Bar.java" );
+
+        readmeTxt = new File( getAssertionCopy(), "sub1/sub2/readme.txt" );
+
+        assertTrue( "check can read Foo.java", fooJava.canRead() );
+
+        assertFalse( "check Bar.java doesn't exist", barJava.canRead() );
+
+        assertTrue( "check can read readme.txt", readmeTxt.canRead() );
+
+        assertEquals( "check readme.txt contents", "/sub1/sub2/readme.txt",
+                      org.codehaus.plexus.util.FileUtils.fileRead( readmeTxt ) );
+    }
+
+    @Override
+    protected List<String> getScmFileNames()
+    {
+        List<String> scmFileNames = new ArrayList<String>( 4 );
+        scmFileNames.add( "/sub1/sub2/pom.xml" );
+        scmFileNames.add( "/sub1/sub2/readme.txt" );
+        scmFileNames.add( "/sub1/sub2/src/main/java/Application.java" );
+        scmFileNames.add( "/sub1/sub2/src/test/java/Test.java" );
+        return scmFileNames;
+    }
+
+    @Override
+    public void initRepo()
+        throws Exception
+    {
+        GitScmTestUtils.initRepo( "src/test/resources/repoWithSubdirs/", getRepositoryRoot(), getWorkingDirectory() );
+    }
+
+    /**
+     * @return default location of the test read/write repository
+     */
+    protected File getRepositoryRoot()
+    {
+        return PlexusTestCase.getTestFile( "target/scm-test/repositoryWithSubdirs" );
+    }
+
+    // @Test
+    // public void testCheckInWithWorkingdirNotInRepoRoot()
+    // throws Exception
+    // {
+    // System.out.println( "hello" );
+    // }
+}

http://git-wip-us.apache.org/repos/asf/maven-scm/blob/bea863c4/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/checkin/CheckInCommandTckTest.java
----------------------------------------------------------------------
diff --git a/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/checkin/CheckInCommandTckTest.java b/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/checkin/CheckInCommandTckTest.java
index 55069ee..41d059f 100644
--- a/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/checkin/CheckInCommandTckTest.java
+++ b/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/checkin/CheckInCommandTckTest.java
@@ -181,7 +181,7 @@ public abstract class CheckInCommandTckTest
         assertEquals( "check readme.txt contents", "/readme.txt", FileUtils.fileRead( readmeTxt ) );
     }
 
-    private void createFooJava( File fooJava )
+    protected void createFooJava( File fooJava )
         throws Exception
     {
         FileWriter output = new FileWriter( fooJava );
@@ -206,7 +206,7 @@ public abstract class CheckInCommandTckTest
         }
     }
 
-    private void createBarJava( File barJava )
+    protected void createBarJava( File barJava )
         throws Exception
     {
         FileWriter output = new FileWriter( barJava );
@@ -228,7 +228,7 @@ public abstract class CheckInCommandTckTest
         output.close();
     }
 
-    private void changeReadmeTxt( File readmeTxt )
+    protected void changeReadmeTxt( File readmeTxt )
         throws Exception
     {
         FileWriter output = new FileWriter( readmeTxt );