@@ -79,20 +79,25 @@ Method SaveWithSourceControl() As %Status
79
79
if '$isobject ($get (%SourceControl )) {
80
80
do ##class (%Studio.SourceControl.Interface ).SourceControlCreate ($username )
81
81
}
82
- // Source control settings naively by only calling OnAfterSave hooks
83
- // Future enhancement: add full source control support with settings UI
82
+ set gitDir = ##class (%File ).NormalizeDirectory (..namespaceTemp )_" .git"
83
+ set skipSourceControl = ('##class (%File ).DirectoryExists (gitDir ) &&
84
+ (##class (%Studio.SourceControl.Interface ).SourceControlClassGet () = ##class (SourceControl.Git.Extension ).%ClassName (1 )))
85
+ $$$QuitOnError(..%Save ())
84
86
set internalName = ##class (SourceControl.Git.Settings.Document ).#INTERNALNAME
85
87
set settingsDoc = ##class (SourceControl.Git.Settings.Document ).%New (internalName )
86
- if (##class (%Studio.SourceControl.Interface ).SourceControlClassGet () = ##class (SourceControl.Git.Extension ).%ClassName (1 )) {
87
- if '##class (SourceControl.Git.Utils ).IsInSourceControl (internalName ) {
88
- set sc = ##class (SourceControl.Git.Utils ).AddToSourceControl (internalName )
89
- $$$QuitOnError(sc )
90
- }
91
- }
92
- $$$QuitOnError(..%Save ())
93
88
$$$QuitOnError(settingsDoc .Load ()) // reload doc to update timestamps
94
- if ($IsObject (%SourceControl )) {
95
- $$$QuitOnError(%SourceControl .OnAfterSave (internalName ))
89
+ if 'skipSourceControl {
90
+ // Source control settings naively by only calling OnAfterSave hooks
91
+ // Future enhancement: add full source control support with settings UI
92
+ if (##class (%Studio.SourceControl.Interface ).SourceControlClassGet () = ##class (SourceControl.Git.Extension ).%ClassName (1 )) {
93
+ if '##class (SourceControl.Git.Utils ).IsInSourceControl (internalName ) {
94
+ set sc = ##class (SourceControl.Git.Utils ).AddToSourceControl (internalName )
95
+ $$$QuitOnError(sc )
96
+ }
97
+ }
98
+ if ($IsObject (%SourceControl )) {
99
+ $$$QuitOnError(%SourceControl .OnAfterSave (internalName ))
100
+ }
96
101
}
97
102
quit sc
98
103
}
@@ -376,8 +381,6 @@ Method OnAfterConfigure() As %Boolean
376
381
set workMgr = $System .WorkMgr .%New (" " )
377
382
$$$ThrowOnError(workMgr .Queue (" ##class(SourceControl.Git.Utils).Init" ))
378
383
$$$ThrowOnError(workMgr .WaitForComplete ())
379
-
380
- do ##class (SourceControl.Git.Utils ).EmptyInitialCommit ()
381
384
} elseif (value = 2 ) {
382
385
set response = ##class (%Library.Prompt ).GetString (" Git remote URL (note: if authentication is required, use SSH, not HTTPS):" ,.remote ,,,,defaultPromptFlag )
383
386
if (response '= $$$SuccessResponse) {
@@ -390,6 +393,8 @@ Method OnAfterConfigure() As %Boolean
390
393
set workMgr = $System .WorkMgr .%New (" " )
391
394
$$$ThrowOnError(workMgr .Queue (" ##class(SourceControl.Git.Utils).Clone" ,remote ))
392
395
$$$ThrowOnError(workMgr .WaitForComplete ())
396
+ // export settings file without committing
397
+ $$$ThrowOnError(..SaveWithSourceControl ())
393
398
}
394
399
}
395
400
}
0 commit comments