Skip to content

Commit fc8aa96

Browse files
committed
fix issues with settings file on repo initialization
1 parent fc3c599 commit fc8aa96

File tree

2 files changed

+21
-22
lines changed

2 files changed

+21
-22
lines changed

cls/SourceControl/Git/Settings.cls

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -79,20 +79,25 @@ Method SaveWithSourceControl() As %Status
7979
if '$isobject($get(%SourceControl)) {
8080
do ##class(%Studio.SourceControl.Interface).SourceControlCreate($username)
8181
}
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())
8486
set internalName = ##class(SourceControl.Git.Settings.Document).#INTERNALNAME
8587
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())
9388
$$$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+
}
96101
}
97102
quit sc
98103
}
@@ -376,8 +381,6 @@ Method OnAfterConfigure() As %Boolean
376381
set workMgr = $System.WorkMgr.%New("")
377382
$$$ThrowOnError(workMgr.Queue("##class(SourceControl.Git.Utils).Init"))
378383
$$$ThrowOnError(workMgr.WaitForComplete())
379-
380-
do ##class(SourceControl.Git.Utils).EmptyInitialCommit()
381384
} elseif (value = 2) {
382385
set response = ##class(%Library.Prompt).GetString("Git remote URL (note: if authentication is required, use SSH, not HTTPS):",.remote,,,,defaultPromptFlag)
383386
if (response '= $$$SuccessResponse) {
@@ -390,6 +393,8 @@ Method OnAfterConfigure() As %Boolean
390393
set workMgr = $System.WorkMgr.%New("")
391394
$$$ThrowOnError(workMgr.Queue("##class(SourceControl.Git.Utils).Clone",remote))
392395
$$$ThrowOnError(workMgr.WaitForComplete())
396+
// export settings file without committing
397+
$$$ThrowOnError(..SaveWithSourceControl())
393398
}
394399
}
395400
}

cls/SourceControl/Git/Utils.cls

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -337,8 +337,9 @@ ClassMethod Init() As %Status
337337
{
338338
do ..RunGitCommand("init",.errStream,.outStream)
339339
do ..PrintStreams(outStream, errStream)
340-
341-
quit $$$OK
340+
set settings = ##class(SourceControl.Git.Settings).%New()
341+
$$$QuitOnError(settings.SaveWithSourceControl())
342+
quit ..Commit(##class(SourceControl.Git.Settings.Document).#INTERNALNAME,"initial commit")
342343
}
343344

344345
ClassMethod Revert(InternalName As %String) As %Status
@@ -2097,12 +2098,6 @@ ClassMethod GitStatus(ByRef files, IncludeAllFiles = 0)
20972098
}
20982099
}
20992100

2100-
ClassMethod EmptyInitialCommit()
2101-
{
2102-
set ret = ..RunGitCommandWithInput("commit",, .errStream, .outStream, "--allow-empty", "-m", "empty initial commit")
2103-
do ..PrintStreams(errStream, outStream)
2104-
}
2105-
21062101
/*
21072102
Internal name: e.g. SourceControl.Git.Utils.CLS
21082103
External name e.g. cls/SourceControl/Git/Utils.cls
@@ -2772,4 +2767,3 @@ ClassMethod BaselineExport(pCommitMessage = "", pPushToRemote = "") As %Status
27722767
}
27732768

27742769
}
2775-

0 commit comments

Comments
 (0)