diff --git a/src/FileSystem-Git.package/.squot-contents b/src/FileSystem-Git.package/.squot-contents index 1158738d0..8999e8416 100644 --- a/src/FileSystem-Git.package/.squot-contents +++ b/src/FileSystem-Git.package/.squot-contents @@ -1,7 +1,7 @@ SquotTrackedObjectMetadata { #objectClassName : #PackageInfo, #id : UUID [ '9d2378120e641f4fad4dd02310c91f53' ], - #slotOverrides : { }, #objectsReplacedByNames : true, + #slotOverrides : { }, #serializer : #SquotCypressCodeSerializer } \ No newline at end of file diff --git a/src/FileSystem-Git.package/GitStore.class/class/trimLog.st b/src/FileSystem-Git.package/GitStore.class/class/trimLog.st new file mode 100644 index 000000000..fbbc3a96b --- /dev/null +++ b/src/FileSystem-Git.package/GitStore.class/class/trimLog.st @@ -0,0 +1,12 @@ +internal +trimLog + "Fix too large log list due to a bug in the tally optimization from November 28, 2021. + Original code was added by Christoph Thiede (ct) in the package postscript." + "GitStore trimLog" + | maxLogSize count | + LogMessages ifNil: [^ self]. + maxLogSize := 5000. + (LogMutex ifNil: [LogMutex := Mutex new]) critical: + [count := LogMessages size. + LogMessages := (LogMessages asArray last: (count := count clampHigh: maxLogSize)) as: LinkedList. "forth and back conversion to avoid inefficient LinkedList(...)>>#last: (quadratic in older versions of Squeak)" + LogMessageCount := count]. \ No newline at end of file diff --git a/src/FileSystem-Git.package/GitStore.class/methodProperties.json b/src/FileSystem-Git.package/GitStore.class/methodProperties.json index 32277e92e..933f5eca5 100644 --- a/src/FileSystem-Git.package/GitStore.class/methodProperties.json +++ b/src/FileSystem-Git.package/GitStore.class/methodProperties.json @@ -4,7 +4,8 @@ "cleanUp:" : "ct 1/10/2024 18:18", "logMessage:" : "ct 1/10/2024 18:17", "memory" : "CamilloBruni 8/30/2012 14:04", - "openLog" : "jr 6/29/2017 10:42" }, + "openLog" : "jr 6/29/2017 10:42", + "trimLog" : "jr 3/19/2024 14:13" }, "instance" : { "addParent:" : "jr 2/26/2017 00:10", "basenameFromEntry:" : "jr 3/6/2017 23:35", diff --git a/src/FileSystem-Git.package/monticello.meta/postscript.st b/src/FileSystem-Git.package/monticello.meta/postscript.st index 5612c6545..5232b78cc 100644 --- a/src/FileSystem-Git.package/monticello.meta/postscript.st +++ b/src/FileSystem-Git.package/monticello.meta/postscript.st @@ -35,9 +35,5 @@ FileSystemGitCompatibility hadInadequateFromUnixTimeImplementation ifFalse: FileSystemGitCompatibility ensureValidFromUnixTimeImplementation. "2024-01-10: fix git log rotation and truncate older logs, see https://github.com/hpi-swa/Squot/pull/410" -(GitStore classPool at: #LogMessages) ifNotNil: [:logMessages | - | count | - count := logMessages size. - GitStore classPool - at: #LogMessages put: ((logMessages asArray last: (count := 5000 clampHigh: count)) as: LinkedList) "forth and back conversion to avoid inefficient LinkedList(...)>>#last: (quadratic in older versions of Squeak)"; - at: #LogMessageCount put: count].'! +GitStore trimLog. +'!