#FEATURE by cg
authorClaus Gittinger <cg@exept.de>
Sat, 08 Oct 2016 22:29:52 +0200
changeset 16917 f742b8a01898
parent 16916 b34991c7bb12
child 16918 beb0c0bf33c8
#FEATURE by cg class: Tools::NewSystemBrowser changed: #moveClasses:toProject: care for scm being unreachable
Tools__NewSystemBrowser.st
--- a/Tools__NewSystemBrowser.st	Fri Oct 07 14:54:17 2016 +0200
+++ b/Tools__NewSystemBrowser.st	Sat Oct 08 22:29:52 2016 +0200
@@ -33331,7 +33331,8 @@
      (and optionally the packageID of any methods (if they are from different packages)"
 
     |anyClassMoved anyMethodMoved classesNotYetInRepository classesAlreadyInRepository
-     sourceInfoPerClassOfClassesAlreadyInRepository oldPackagePerClass newProjectDefinition|
+     sourceInfoPerClassOfClassesAlreadyInRepository oldPackagePerClass newProjectDefinition
+     thereWasASourceCodeManagerError|
 
     (newProject = PackageId noProjectID) ifTrue:[
         (Dialog confirm:(resources
@@ -33347,13 +33348,22 @@
     sourceInfoPerClassOfClassesAlreadyInRepository := Dictionary new.
     oldPackagePerClass := Dictionary new.
 
+    thereWasASourceCodeManagerError := false.
+    
     classes do:[:eachClass | 
-        |oldProject theClass mgr|
+        |oldProject theClass mgr vsn|
 
         theClass := eachClass theNonMetaclass.
         mgr := theClass sourceCodeManager.
 
-        (theClass sourceCodeManager isNil or:[ (mgr newestRevisionOf:theClass) isNil ]) ifTrue:[
+        mgr notNil ifTrue:[ 
+            SourceCodeManagerError handle:[:ex |
+                thereWasASourceCodeManagerError := true
+            ] do:[    
+                vsn := mgr newestRevisionOf:theClass.
+            ].
+        ].
+        vsn isNil ifTrue:[
             classesNotYetInRepository add:eachClass
         ] ifFalse:[
             classesAlreadyInRepository add:eachClass.
@@ -33412,7 +33422,10 @@
     (newProject = PackageId noProjectID) ifTrue:[^ self].
     
     self rememberLastProjectMoveTo:newProject.
-
+    thereWasASourceCodeManagerError ifTrue:[
+        Dialog warn:(resources stringWithCRs:'There was a problem accessing the source code repository.\\Please check your settings and/or network connection').
+        ^ self
+    ].    
     (Dialog confirm:(resources string:
                     (classesAlreadyInRepository notEmpty
                         ifTrue:['Move the classes in the repository now (recommended)?']