|
9 | 9 | import org.apache.maven.scm.command.checkin.CheckInScmResult; |
10 | 10 | import org.apache.maven.scm.command.checkout.CheckOutScmResult; |
11 | 11 | import org.apache.maven.scm.command.remove.RemoveScmResult; |
| 12 | +import org.apache.maven.scm.command.status.StatusScmResult; |
12 | 13 | import org.apache.maven.scm.command.update.UpdateScmResult; |
13 | 14 | import org.apache.maven.scm.manager.NoSuchScmProviderException; |
14 | 15 | import org.apache.maven.scm.manager.ScmManager; |
|
18 | 19 | import java.io.IOException; |
19 | 20 | import java.util.ArrayList; |
20 | 21 | import java.util.Arrays; |
| 22 | +import java.util.Iterator; |
21 | 23 | import java.util.List; |
22 | 24 | import java.util.logging.Level; |
23 | 25 | import java.util.logging.Logger; |
@@ -124,7 +126,17 @@ public List<File> deleteHierarchy(File hierarchyToDelete){ |
124 | 126 |
|
125 | 127 | try { |
126 | 128 | ScmFileSet deleteFileSet = new ScmFileSet(enclosingDirectory, hierarchyToDelete); |
127 | | - RemoveScmResult removeResult = this.scmManager.remove(this.scmRepository, deleteFileSet, ""); |
| 129 | + StatusScmResult checkForChanges = this.scmManager.status(scmRepository, deleteFileSet); |
| 130 | + LOGGER.fine("Checking for changes on SCM hierarchy ["+hierarchyToDelete.getAbsolutePath()+"] from SCM ..."); |
| 131 | + for (ScmFile changedFile : checkForChanges.getChangedFiles()) { |
| 132 | + //check in this change as it affect our hierarchy |
| 133 | + LOGGER.fine("[checkForChanges] Found changed file "+changedFile.toString()+", try to check-in..."); |
| 134 | + CheckInScmResult checkedInChangedFile = scmManager.checkIn(scmRepository, new ScmFileSet(enclosingDirectory.getParentFile(), new File(changedFile.getPath())), "Check-In changes for "+changedFile.getPath()); |
| 135 | + if(!checkedInChangedFile.isSuccess()){ |
| 136 | + LOGGER.severe("[checkForChanges] Failed to check-in changed file ["+changedFile.getPath()+"]: "+checkedInChangedFile.getProviderMessage()); |
| 137 | + } |
| 138 | + } |
| 139 | + RemoveScmResult removeResult = this.scmManager.remove(this.scmRepository, deleteFileSet, "Delete hierarchy "+hierarchyToDelete.getPath()); |
128 | 140 | if(!removeResult.isSuccess()){ |
129 | 141 | LOGGER.severe("[deleteHierarchy] Problem during remove : "+removeResult.getProviderMessage()); |
130 | 142 | return null; |
|
0 commit comments