[MRELEASE-1099] Use shallow checkout/clone during release:perform

This closes #139
diff --git a/maven-release-manager/src/main/mdo/release-descriptor.mdo b/maven-release-manager/src/main/mdo/release-descriptor.mdo
index 92f64ee..0a1d8cd 100644
--- a/maven-release-manager/src/main/mdo/release-descriptor.mdo
+++ b/maven-release-manager/src/main/mdo/release-descriptor.mdo
@@ -941,6 +941,10 @@
         {
             return false;
         }
+        if ( !java.util.Objects.equals( scmShallowClone, that.isScmShallowClone() ) )
+        {
+            return false;
+        }
         if ( !java.util.Objects.equals( scmReleaseCommitComment, that.getScmReleaseCommitComment() ) )
         {
             return false;
@@ -1087,6 +1091,7 @@
         result = 29 * result + java.util.Objects.hashCode( pomFileName );
         result = 29 * result + java.util.Objects.hashCode( checkModificationExcludes );
         result = 29 * result + java.util.Objects.hashCode( scmDevelopmentCommitComment );
+        result = 29 * result + java.util.Objects.hashCode( scmShallowClone );
         result = 29 * result + java.util.Objects.hashCode( scmReleaseCommitComment );
         result = 29 * result + java.util.Objects.hashCode( scmBranchCommitComment );
         result = 29 * result + java.util.Objects.hashCode( scmRollbackCommitComment );
diff --git a/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PerformReleaseMojo.java b/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PerformReleaseMojo.java
index aa6ac09..7994e2a 100644
--- a/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PerformReleaseMojo.java
+++ b/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PerformReleaseMojo.java
@@ -101,6 +101,12 @@
     private String password;
 
     /**
+     * When cloning a repository if it should be a shallow clone or a full clone.
+     */
+    @Parameter( defaultValue = "true", property = "scmShallowClone" )
+    private boolean scmShallowClone = true;
+
+    /**
      * Whether to use the default release profile (Maven 2 and 3) that adds sources and javadocs to the released
      * artifact, if appropriate. If set to true, the release plugin sets the property "<code>performRelease</code>" to
      * true, which activates the profile "<code>release-profile</code>" as inherited from
@@ -183,6 +189,8 @@
                 releaseDescriptor.setScmPassword( password );
             }
 
+            releaseDescriptor.setScmShallowClone( scmShallowClone );
+
             releaseDescriptor.setLocalCheckout( localCheckout );
 
             releaseDescriptor.setCheckoutDirectory( workingDirectory.getAbsolutePath() );