diff --git a/Iceberg-Libgit.package/IceLibgitLocalRepository.class/instance/changedFilesBetween.and..st b/Iceberg-Libgit.package/IceLibgitLocalRepository.class/instance/changedFilesBetween.and..st index 54536dced0..5c8fa2be21 100644 --- a/Iceberg-Libgit.package/IceLibgitLocalRepository.class/instance/changedFilesBetween.and..st +++ b/Iceberg-Libgit.package/IceLibgitLocalRepository.class/instance/changedFilesBetween.and..st @@ -4,9 +4,7 @@ changedFilesBetween: aCommitish and: otherCommitish | fromTree toTree | self withRepoDo: [ :repo | | diff | - fromTree := (LGitCommit of: repo fromId: (LGitId fromHexString: aCommitish id)) tree. - toTree := (LGitCommit of: repo fromId: (LGitId fromHexString: otherCommitish id)) tree. - - diff := LGitDiff of: repo. - diff diffTree: fromTree toTree: toTree. + fromTree := (LGitCommit of: repo fromHexString: aCommitish id) tree. + toTree := (LGitCommit of: repo fromHexString: otherCommitish id) tree. + diff := fromTree diffTo: toTree. ^ diff files ] \ No newline at end of file diff --git a/Iceberg-Libgit.package/IceLibgitLocalRepository.class/instance/cloneRepositoryFrom.branch..st b/Iceberg-Libgit.package/IceLibgitLocalRepository.class/instance/cloneRepositoryFrom.branch..st index fa91eacec7..c5d1f514a6 100644 --- a/Iceberg-Libgit.package/IceLibgitLocalRepository.class/instance/cloneRepositoryFrom.branch..st +++ b/Iceberg-Libgit.package/IceLibgitLocalRepository.class/instance/cloneRepositoryFrom.branch..st @@ -7,10 +7,12 @@ cloneRepositoryFrom: aRemote branch: aBranchName | repo cloneOptions | repo := LGitRepository on: self location. cloneOptions := LGitCloneOptions withCredentialsProvider: IceCredentialsProvider default. - + cloneOptions checkoutOptions checkoutStrategy: LGitCheckoutStrategyEnum git_checkout_none. repo clone: url options: cloneOptions. - aBranchName ifNotNil: [ - repo checkout: aBranchName ]. + repo checkout: (aBranchName ifNil: [ + self branch + ifNotNil: [ :b | b name ] + ifNil: [ 'master' ] ]). (LGitRemote of: repo named: 'origin') lookup; diff --git a/Iceberg-UI.package/IceAbstractModel.class/class/compactIfNeeded.st b/Iceberg-UI.package/IceAbstractModel.class/class/compactIfNeeded.st index fff375ea5d..f3c3d07320 100644 --- a/Iceberg-UI.package/IceAbstractModel.class/class/compactIfNeeded.st +++ b/Iceberg-UI.package/IceAbstractModel.class/class/compactIfNeeded.st @@ -1,7 +1,5 @@ private compactIfNeeded - | newModelCache | self models size > 250 ifFalse: [ ^ self ]. - newModelCache := self models select: [ :each | each notNil ]. - modelCache := newModelCache - \ No newline at end of file + "it looks like rehash will do what I need :)" + modelCache rehash \ No newline at end of file diff --git a/Iceberg-UI.package/IceAbstractModel.class/class/modelFor..st b/Iceberg-UI.package/IceAbstractModel.class/class/modelFor..st index 51f4da379e..2bfa566d64 100644 --- a/Iceberg-UI.package/IceAbstractModel.class/class/modelFor..st +++ b/Iceberg-UI.package/IceAbstractModel.class/class/modelFor..st @@ -1,17 +1,14 @@ instance creation modelFor: entity | model | - "We are using WeakValueDictionary to keep this sinchronized (in case you have more than - one window open, you want always same model). Now, it has to be cleaned when windows are - no longer around, but associations will be nil... so we cannot use a simple ifAbsentPut:. - Yep, ugly... but effective." - - model := self models at: entity name ifAbsent: [ nil ]. + "We are using a WeakSet for keeping models because using a dictionary (sorted by + name) has problems when cleaning. This should be efficient enough, but we'll see." + model := self models + detect: [ :each | each notNil and: [ each entity name = entity name ] ] + ifNone: [ nil ]. ^ model ifNil: [ self compactIfNeeded. - self models - at: entity name - put: (self basicNew - entity: entity; - initialize; - yourself) ] \ No newline at end of file + self models add: (self basicNew + entity: entity; + initialize; + yourself) ] \ No newline at end of file diff --git a/Iceberg-UI.package/IceAbstractModel.class/class/models.st b/Iceberg-UI.package/IceAbstractModel.class/class/models.st index f5d668375f..6cb4b43220 100644 --- a/Iceberg-UI.package/IceAbstractModel.class/class/models.st +++ b/Iceberg-UI.package/IceAbstractModel.class/class/models.st @@ -3,4 +3,4 @@ models "since a repository can have same name as a package (and we keep models by name), I need to keep this as an instance of class and not a variable (who would be shared by all hierarchy and because of that prone to errors)" - ^ modelCache ifNil: [ modelCache := WeakValueDictionary new ] \ No newline at end of file + ^ modelCache ifNil: [ modelCache := WeakSet new ] \ No newline at end of file diff --git a/Iceberg-UI.package/IceCachedValue.class/instance/invalidateOn.from..st b/Iceberg-UI.package/IceCachedValue.class/instance/invalidateOn.from..st index 58592717c7..ffed264ff0 100644 --- a/Iceberg-UI.package/IceCachedValue.class/instance/invalidateOn.from..st +++ b/Iceberg-UI.package/IceCachedValue.class/instance/invalidateOn.from..st @@ -1,3 +1,3 @@ initialization invalidateOn: announcementType from: announcer - announcer subscribe: announcementType send: #reset to: self \ No newline at end of file + announcer when: announcementType send: #reset to: self \ No newline at end of file diff --git a/Iceberg-UI.package/IceCloneRepositoryModel.class/instance/configureRepository..st b/Iceberg-UI.package/IceCloneRepositoryModel.class/instance/configureRepository..st new file mode 100644 index 0000000000..f091fe9f39 --- /dev/null +++ b/Iceberg-UI.package/IceCloneRepositoryModel.class/instance/configureRepository..st @@ -0,0 +1,3 @@ +private +configureRepository: aRepository + aRepository register \ No newline at end of file diff --git a/Iceberg-UI.package/IceCloneRepositoryModel.class/instance/createRepository.st b/Iceberg-UI.package/IceCloneRepositoryModel.class/instance/createRepository.st index 7c7bc081bc..1d8028f314 100644 --- a/Iceberg-UI.package/IceCloneRepositoryModel.class/instance/createRepository.st +++ b/Iceberg-UI.package/IceCloneRepositoryModel.class/instance/createRepository.st @@ -8,7 +8,7 @@ createRepository location: self location; subdirectory: subdirectory text; createRepository. - repository register. + self configureRepository: repository. self window delete. ] diff --git a/Iceberg-UI.package/IceCreateRepositoryModel.class/instance/guessSubDirectory.st b/Iceberg-UI.package/IceCreateRepositoryModel.class/instance/guessSubDirectory.st new file mode 100644 index 0000000000..00e59f76fb --- /dev/null +++ b/Iceberg-UI.package/IceCreateRepositoryModel.class/instance/guessSubDirectory.st @@ -0,0 +1,10 @@ +actions +guessSubDirectory + "If a '.filetree' file, there is a high chance that this is a smalltalk code directory. In that case, the directory containing it is probably the subdirectory of the repository." + + | location | + location := localDirectoryLocation location. + location files + detect: [ :file | file basename = '.filetree' ] + ifFound: [ :dir | subdirectory text: '' ] + ifNone: [ location directories do: [ :directory | directory files detect: [ :file | file basename = '.filetree' ] ifFound: [ :file | subdirectory text: directory basename ] ] ] \ No newline at end of file diff --git a/Iceberg-UI.package/IceCreateRepositoryModel.class/instance/initializeWidgets.st b/Iceberg-UI.package/IceCreateRepositoryModel.class/instance/initializeWidgets.st index 6e75e70bd2..39b3ea51f5 100644 --- a/Iceberg-UI.package/IceCreateRepositoryModel.class/instance/initializeWidgets.st +++ b/Iceberg-UI.package/IceCreateRepositoryModel.class/instance/initializeWidgets.st @@ -2,6 +2,7 @@ initialization initializeWidgets localDirectoryLocation := self instantiate: IceDirectoryModel. localDirectoryLocation + onChoose: [ self guessSubDirectory ]; label: 'Local directory'; chooseTitle: 'Choose local repository'; location: self defaultLocation. diff --git a/Iceberg-UI.package/IceDiffChangeTreeBuilder.class/instance/buildOn..st b/Iceberg-UI.package/IceDiffChangeTreeBuilder.class/instance/buildOn..st index a20f07a5fe..35aa788a01 100644 --- a/Iceberg-UI.package/IceDiffChangeTreeBuilder.class/instance/buildOn..st +++ b/Iceberg-UI.package/IceDiffChangeTreeBuilder.class/instance/buildOn..st @@ -14,7 +14,7 @@ buildOn: aPresenter onChangeOfPort: #entity act: [ :presentation | self diff ifNotNil: [ self diff announcer - subscribe: IceChangeSetChanged + when: IceChangeSetChanged send: #execute: to: (IceChangesTreeResetSelectionHelper for: presentation) ] ]; yourself \ No newline at end of file diff --git a/Iceberg-UI.package/IceDiffCherryPickChangeTreeBuilder.class/instance/buildOn..st b/Iceberg-UI.package/IceDiffCherryPickChangeTreeBuilder.class/instance/buildOn..st index 3b315f926b..41da3ece01 100644 --- a/Iceberg-UI.package/IceDiffCherryPickChangeTreeBuilder.class/instance/buildOn..st +++ b/Iceberg-UI.package/IceDiffCherryPickChangeTreeBuilder.class/instance/buildOn..st @@ -16,7 +16,7 @@ buildOn: aPresenter onChangeOfPort: #entity act: [ :presentation | self diff ifNotNil: [ self diff announcer - subscribe: IceChangeSetChanged + when: IceChangeSetChanged send: #execute: to: (IceChangesTreeResetSelectionHelper for: presentation) ] ]; yourself \ No newline at end of file diff --git a/Iceberg-UI.package/IceLocationModel.class/instance/choose.st b/Iceberg-UI.package/IceLocationModel.class/instance/choose.st index ac3da89298..1ab857f20e 100644 --- a/Iceberg-UI.package/IceLocationModel.class/instance/choose.st +++ b/Iceberg-UI.package/IceLocationModel.class/instance/choose.st @@ -2,4 +2,5 @@ actions choose self chooseReference ifNotNil: [ :reference | self location: reference. - self locationInput text: reference pathString ] \ No newline at end of file + self locationInput text: reference pathString. + self onChoose ifNotNil: #value ] \ No newline at end of file diff --git a/Iceberg-UI.package/IceLocationModel.class/instance/onChoose..st b/Iceberg-UI.package/IceLocationModel.class/instance/onChoose..st new file mode 100644 index 0000000000..899ba6c029 --- /dev/null +++ b/Iceberg-UI.package/IceLocationModel.class/instance/onChoose..st @@ -0,0 +1,5 @@ +hook +onChoose: aBlockClosure + "I allow to set a hook to execute when the user select a location." + + chooseBlock := aBlockClosure \ No newline at end of file diff --git a/Iceberg-UI.package/IceLocationModel.class/instance/onChoose.st b/Iceberg-UI.package/IceLocationModel.class/instance/onChoose.st new file mode 100644 index 0000000000..42e6642d68 --- /dev/null +++ b/Iceberg-UI.package/IceLocationModel.class/instance/onChoose.st @@ -0,0 +1,3 @@ +hook +onChoose + ^ chooseBlock \ No newline at end of file diff --git a/Iceberg-UI.package/IceLocationModel.class/properties.json b/Iceberg-UI.package/IceLocationModel.class/properties.json index 3393a7ed5a..959509d5bb 100644 --- a/Iceberg-UI.package/IceLocationModel.class/properties.json +++ b/Iceberg-UI.package/IceLocationModel.class/properties.json @@ -10,7 +10,8 @@ "locationInput", "chooseButton", "label", - "chooseTitle" + "chooseTitle", + "chooseBlock" ], "name" : "IceLocationModel", "type" : "normal" diff --git a/Iceberg-UI.package/IceRepositoriesBrowser.class/instance/composeRepositories.in..st b/Iceberg-UI.package/IceRepositoriesBrowser.class/instance/composeRepositories.in..st index dda14cdb85..4c8358edd0 100644 --- a/Iceberg-UI.package/IceRepositoriesBrowser.class/instance/composeRepositories.in..st +++ b/Iceberg-UI.package/IceRepositoriesBrowser.class/instance/composeRepositories.in..st @@ -17,7 +17,7 @@ composeRepositories: repositories in: composite table updateOn: MCPackageModified from: MCPackageManager announcer. Iceberg announcer weak - subscribe: IceRepositoryCreated + when: IceRepositoryCreated send: #execute: to: (IceRepositoryUpdateHelper for: table). diff --git a/Iceberg-UI.package/IceRepositoriesBrowser.class/instance/composeRepositoriesIn..st b/Iceberg-UI.package/IceRepositoriesBrowser.class/instance/composeRepositoriesIn..st index d8c19b11e6..b15aaac39d 100644 --- a/Iceberg-UI.package/IceRepositoriesBrowser.class/instance/composeRepositoriesIn..st +++ b/Iceberg-UI.package/IceRepositoriesBrowser.class/instance/composeRepositoriesIn..st @@ -17,7 +17,7 @@ composeRepositoriesIn: composite table updateOn: MCPackageModified from: MCPackageManager announcer. Iceberg announcer weak - subscribe: IceRepositoryCreated + when: IceRepositoryCreated send: #execute: to: (IceRepositoryUpdateHelper for: table). diff --git a/Iceberg-UI.package/IceRepositoryModel.class/instance/restore.st b/Iceberg-UI.package/IceRepositoryModel.class/instance/restore.st index 201a255e50..da5f15f28b 100644 --- a/Iceberg-UI.package/IceRepositoryModel.class/instance/restore.st +++ b/Iceberg-UI.package/IceRepositoryModel.class/instance/restore.st @@ -1,4 +1,3 @@ actions restore - self repository backend cloneRepository. - self repository refresh. + (IceRestoreRepositoryModel repository: self repository) openWithSpec \ No newline at end of file diff --git a/Iceberg-UI.package/IceRestoreRepositoryModel.class/README.md b/Iceberg-UI.package/IceRestoreRepositoryModel.class/README.md new file mode 100644 index 0000000000..e69de29bb2 diff --git a/Iceberg-UI.package/IceRestoreRepositoryModel.class/class/new.st b/Iceberg-UI.package/IceRestoreRepositoryModel.class/class/new.st new file mode 100644 index 0000000000..fff5b20bea --- /dev/null +++ b/Iceberg-UI.package/IceRestoreRepositoryModel.class/class/new.st @@ -0,0 +1,3 @@ +instance creation +new + self error: 'Use #repository:' \ No newline at end of file diff --git a/Iceberg-UI.package/IceRestoreRepositoryModel.class/class/repository..st b/Iceberg-UI.package/IceRestoreRepositoryModel.class/class/repository..st new file mode 100644 index 0000000000..de3faa4f40 --- /dev/null +++ b/Iceberg-UI.package/IceRestoreRepositoryModel.class/class/repository..st @@ -0,0 +1,5 @@ +instance creation +repository: aRepository + ^ self basicNew + initializeRepository: aRepository; + yourself \ No newline at end of file diff --git a/Iceberg-UI.package/IceRestoreRepositoryModel.class/instance/configureRepository..st b/Iceberg-UI.package/IceRestoreRepositoryModel.class/instance/configureRepository..st new file mode 100644 index 0000000000..1f17ee850a --- /dev/null +++ b/Iceberg-UI.package/IceRestoreRepositoryModel.class/instance/configureRepository..st @@ -0,0 +1,6 @@ +private +configureRepository: aRepository + repository location = aRepository location + ifFalse: [ repository location: aRepository location ]. + repository subdirectory = aRepository subdirectory + ifFalse: [ repository subdirectory: aRepository subdirectory ] diff --git a/Iceberg-UI.package/IceRestoreRepositoryModel.class/instance/initializeRepository..st b/Iceberg-UI.package/IceRestoreRepositoryModel.class/instance/initializeRepository..st new file mode 100644 index 0000000000..d7245e5f1d --- /dev/null +++ b/Iceberg-UI.package/IceRestoreRepositoryModel.class/instance/initializeRepository..st @@ -0,0 +1,8 @@ +initialization +initializeRepository: aRepository + repository := aRepository. + self initialize. + repository location ifNotNil: [ + remoteUrl text: repository origin url. + localDirectoryLocation location: repository location ]. + subdirectory text: repository subdirectory diff --git a/Iceberg-UI.package/IceRestoreRepositoryModel.class/properties.json b/Iceberg-UI.package/IceRestoreRepositoryModel.class/properties.json new file mode 100644 index 0000000000..b51d3cbcc1 --- /dev/null +++ b/Iceberg-UI.package/IceRestoreRepositoryModel.class/properties.json @@ -0,0 +1,13 @@ +{ + "commentStamp" : "", + "super" : "IceCloneRepositoryModel", + "category" : "Iceberg-UI-View", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], + "instvars" : [ + "repository" + ], + "name" : "IceRestoreRepositoryModel", + "type" : "normal" +} \ No newline at end of file diff --git a/Iceberg-UI.package/monticello.meta/categories.st b/Iceberg-UI.package/monticello.meta/categories.st index 1fa79f84f9..43f6c201ae 100644 --- a/Iceberg-UI.package/monticello.meta/categories.st +++ b/Iceberg-UI.package/monticello.meta/categories.st @@ -1,4 +1,4 @@ SystemOrganization addCategory: #'Iceberg-UI'! -SystemOrganization addCategory: 'Iceberg-UI-Model'! -SystemOrganization addCategory: 'Iceberg-UI-Utils'! -SystemOrganization addCategory: 'Iceberg-UI-View'! +SystemOrganization addCategory: #'Iceberg-UI-Model'! +SystemOrganization addCategory: #'Iceberg-UI-Utils'! +SystemOrganization addCategory: #'Iceberg-UI-View'! diff --git a/Iceberg.package/IceCommitInfo.class/instance/mergeBaseWith..st b/Iceberg.package/IceCommitInfo.class/instance/mergeBaseWith..st index 681b2620cf..e3280d855e 100644 --- a/Iceberg.package/IceCommitInfo.class/instance/mergeBaseWith..st +++ b/Iceberg.package/IceCommitInfo.class/instance/mergeBaseWith..st @@ -1,4 +1,4 @@ querying mergeBaseWith: anotherCommit ^ self repository commitAt: - (self repository backend mergeBaseBetween: self id and: anotherCommit id) \ No newline at end of file + (self repository mergeBaseBetween: self id and: anotherCommit id) \ No newline at end of file diff --git a/Iceberg.package/IceDiff.class/instance/repository..st b/Iceberg.package/IceDiff.class/instance/repository..st index 207142e4d9..131eb379eb 100644 --- a/Iceberg.package/IceDiff.class/instance/repository..st +++ b/Iceberg.package/IceDiff.class/instance/repository..st @@ -2,4 +2,4 @@ accessing repository: anObject repository := anObject. repository announcer weak - subscribe: IceCommited send: #refresh to: self \ No newline at end of file + when: IceCommited send: #refresh to: self \ No newline at end of file diff --git a/Iceberg.package/IceLog.class/README.md b/Iceberg.package/IceLog.class/README.md new file mode 100644 index 0000000000..e69de29bb2 diff --git a/Iceberg.package/IceLog.class/class/for..st b/Iceberg.package/IceLog.class/class/for..st new file mode 100644 index 0000000000..777efcdcab --- /dev/null +++ b/Iceberg.package/IceLog.class/class/for..st @@ -0,0 +1,5 @@ +instance creation +for: aRepository + ^ self basicNew + initializeRepository: aRepository; + yourself \ No newline at end of file diff --git a/Iceberg.package/IceLog.class/class/new.st b/Iceberg.package/IceLog.class/class/new.st new file mode 100644 index 0000000000..18c2f30cd3 --- /dev/null +++ b/Iceberg.package/IceLog.class/class/new.st @@ -0,0 +1,3 @@ +instance creation +new + self error: '#for:' \ No newline at end of file diff --git a/Iceberg.package/IceLog.class/instance/cypressClassOrTraitName..st b/Iceberg.package/IceLog.class/instance/cypressClassOrTraitName..st new file mode 100644 index 0000000000..c1f84e1638 --- /dev/null +++ b/Iceberg.package/IceLog.class/instance/cypressClassOrTraitName..st @@ -0,0 +1,4 @@ +private +cypressClassOrTraitName: aMethod + ^ aMethod origin name, (self cypressMethodClassExtension: aMethod) + \ No newline at end of file diff --git a/Iceberg.package/IceLog.class/instance/cypressMethodClassExtension..st b/Iceberg.package/IceLog.class/instance/cypressMethodClassExtension..st new file mode 100644 index 0000000000..1eb2b81ea5 --- /dev/null +++ b/Iceberg.package/IceLog.class/instance/cypressMethodClassExtension..st @@ -0,0 +1,5 @@ +private +cypressMethodClassExtension: aMethod + aMethod isExtension ifTrue: [ ^ '.extension' ]. + aMethod origin isTrait ifTrue: [ ^ '.trait' ]. + ^ '.class' \ No newline at end of file diff --git a/Iceberg.package/IceLog.class/instance/cypressMethodName..st b/Iceberg.package/IceLog.class/instance/cypressMethodName..st new file mode 100644 index 0000000000..3c21830db5 --- /dev/null +++ b/Iceberg.package/IceLog.class/instance/cypressMethodName..st @@ -0,0 +1,3 @@ +private +cypressMethodName: aMethod + ^ (MCFileTreeStCypressWriter fileNameForSelector: aMethod selector asString), '.st' \ No newline at end of file diff --git a/Iceberg.package/IceLog.class/instance/cypressMethodSideName..st b/Iceberg.package/IceLog.class/instance/cypressMethodSideName..st new file mode 100644 index 0000000000..3f26919061 --- /dev/null +++ b/Iceberg.package/IceLog.class/instance/cypressMethodSideName..st @@ -0,0 +1,5 @@ +private +cypressMethodSideName: aMethod + ^ aMethod origin isClassSide + ifTrue: [ 'class' ] + ifFalse: [ 'instance' ] \ No newline at end of file diff --git a/Iceberg.package/IceLog.class/instance/cypressPackageName..st b/Iceberg.package/IceLog.class/instance/cypressPackageName..st new file mode 100644 index 0000000000..cfdb671f56 --- /dev/null +++ b/Iceberg.package/IceLog.class/instance/cypressPackageName..st @@ -0,0 +1,3 @@ +private +cypressPackageName: aPackage + ^ aPackage name, '.package' \ No newline at end of file diff --git a/Iceberg.package/IceLog.class/instance/fileNameForMethod..st b/Iceberg.package/IceLog.class/instance/fileNameForMethod..st new file mode 100644 index 0000000000..f52f12d293 --- /dev/null +++ b/Iceberg.package/IceLog.class/instance/fileNameForMethod..st @@ -0,0 +1,15 @@ +private +fileNameForMethod: aMethod + | path | + + path := OrderedCollection new. + self repository subdirectory + ifNotEmpty: [ :subDir | path add: subDir ]. + path + add: (self cypressPackageName: aMethod origin package); + add: (self cypressClassOrTraitName: aMethod); + add: (self cypressMethodSideName: aMethod); + add: (self cypressMethodName: aMethod). + + ^ String streamContents: [ :stream | + path asStringOn: stream delimiter: '/' ] \ No newline at end of file diff --git a/Iceberg.package/IceLog.class/instance/historyOfMethod..st b/Iceberg.package/IceLog.class/instance/historyOfMethod..st new file mode 100644 index 0000000000..f59d96da7d --- /dev/null +++ b/Iceberg.package/IceLog.class/instance/historyOfMethod..st @@ -0,0 +1,27 @@ +accessing +historyOfMethod: aMethod + | path commit pathSpec options history | + + path := self fileNameForMethod: aMethod. + + commit := self repository branch lastCommit. + pathSpec := LGitPathSpec withAll: { path }. + options := LGitDiffOptions defaults. + options pathspec: (LGitStringArray withAll: { path }). + + history := OrderedCollection new. + self repository newCommitWalk + fromCommit: commit; + rawResultsDo: [ :eachCommit | | parents tree | + parents := eachCommit numberOfParents. + tree := eachCommit tree. + parents = 0 + ifTrue: [ + (tree matchesPathSpec: pathSpec) + ifTrue: [ history add: eachCommit ] ] + ifFalse: [ + eachCommit parents do: [ :eachParent | | diff | + diff := tree diffTo: eachParent tree options: options. + diff numberOfDeltas > 0 + ifTrue: [ history add: eachCommit ] ] ] ]. + ^ history collect: [ :each | IceLibgitLocalRepository parseCommitInfo: each ] \ No newline at end of file diff --git a/Iceberg.package/IceLog.class/instance/initializeRepository..st b/Iceberg.package/IceLog.class/instance/initializeRepository..st new file mode 100644 index 0000000000..4e6ac5961f --- /dev/null +++ b/Iceberg.package/IceLog.class/instance/initializeRepository..st @@ -0,0 +1,4 @@ +initialization +initializeRepository: aRepository + repository := aRepository. + self initialize \ No newline at end of file diff --git a/Iceberg.package/IceLog.class/instance/repository.st b/Iceberg.package/IceLog.class/instance/repository.st new file mode 100644 index 0000000000..5be9763862 --- /dev/null +++ b/Iceberg.package/IceLog.class/instance/repository.st @@ -0,0 +1,3 @@ +accessing +repository + ^ repository \ No newline at end of file diff --git a/Iceberg.package/IceLog.class/properties.json b/Iceberg.package/IceLog.class/properties.json new file mode 100644 index 0000000000..e1d0aef8d2 --- /dev/null +++ b/Iceberg.package/IceLog.class/properties.json @@ -0,0 +1,13 @@ +{ + "commentStamp" : "", + "super" : "Object", + "category" : "Iceberg-Changes", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], + "instvars" : [ + "repository" + ], + "name" : "IceLog", + "type" : "normal" +} \ No newline at end of file diff --git a/Iceberg.package/IceRepository.class/instance/log.st b/Iceberg.package/IceRepository.class/instance/log.st new file mode 100644 index 0000000000..5bd7390df0 --- /dev/null +++ b/Iceberg.package/IceRepository.class/instance/log.st @@ -0,0 +1,3 @@ +accessing +log + ^ IceLog for: self \ No newline at end of file diff --git a/Iceberg.package/monticello.meta/categories.st b/Iceberg.package/monticello.meta/categories.st index 3b474247c7..9f5ac70d97 100644 --- a/Iceberg.package/monticello.meta/categories.st +++ b/Iceberg.package/monticello.meta/categories.st @@ -1,8 +1,8 @@ SystemOrganization addCategory: #Iceberg! -SystemOrganization addCategory: 'Iceberg-Adapters'! -SystemOrganization addCategory: 'Iceberg-Announcements'! -SystemOrganization addCategory: 'Iceberg-Changes'! -SystemOrganization addCategory: 'Iceberg-Core'! -SystemOrganization addCategory: 'Iceberg-Core-Remotes'! -SystemOrganization addCategory: 'Iceberg-Errors'! -SystemOrganization addCategory: 'Iceberg-Security'! +SystemOrganization addCategory: #'Iceberg-Adapters'! +SystemOrganization addCategory: #'Iceberg-Announcements'! +SystemOrganization addCategory: #'Iceberg-Changes'! +SystemOrganization addCategory: #'Iceberg-Core'! +SystemOrganization addCategory: #'Iceberg-Core-Remotes'! +SystemOrganization addCategory: #'Iceberg-Errors'! +SystemOrganization addCategory: #'Iceberg-Security'!