#FEATURE by cg
class: Tools::NewSystemBrowser
changed: #moveClasses:toProject:
care for scm being unreachable
--- 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)?']