git/GitPackageModelRegistry.st
author Jan Vrany <jan.vrany@labware.com>
Thu, 28 Jul 2022 06:56:07 +0100
changeset 943 442fe77c421f
parent 481 0cfef855baa2
child 876 2643ba2d9c52
permissions -rw-r--r--
Merge
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
31
d96d7eff6efc - GitDiffDeltaStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
     1
"{ Package: 'stx:libscm/git' }"
d96d7eff6efc - GitDiffDeltaStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
     2
45
dfe5c7416a4e Refactoring to reuse classes from stx:libscm/common
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 31
diff changeset
     3
SCMAbstractPackageModelRegistry subclass:#GitPackageModelRegistry
dfe5c7416a4e Refactoring to reuse classes from stx:libscm/common
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 31
diff changeset
     4
	instanceVariableNames:''
dfe5c7416a4e Refactoring to reuse classes from stx:libscm/common
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 31
diff changeset
     5
	classVariableNames:''
31
d96d7eff6efc - GitDiffDeltaStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
     6
	poolDictionaries:''
d96d7eff6efc - GitDiffDeltaStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
     7
	category:'SCM-Git-StX'
d96d7eff6efc - GitDiffDeltaStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
     8
!
d96d7eff6efc - GitDiffDeltaStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
     9
d96d7eff6efc - GitDiffDeltaStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    10
45
dfe5c7416a4e Refactoring to reuse classes from stx:libscm/common
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 31
diff changeset
    11
!GitPackageModelRegistry methodsFor:'accessing'!
31
d96d7eff6efc - GitDiffDeltaStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    12
d96d7eff6efc - GitDiffDeltaStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    13
packageNamed:package
d96d7eff6efc - GitDiffDeltaStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    14
    "Returns a GitPackageWorkingCopy for given package."
d96d7eff6efc - GitDiffDeltaStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    15
45
dfe5c7416a4e Refactoring to reuse classes from stx:libscm/common
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 31
diff changeset
    16
    | dir repo |
31
d96d7eff6efc - GitDiffDeltaStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    17
d96d7eff6efc - GitDiffDeltaStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    18
    packages at: package ifPresent: [ :pkg | ^ pkg ].
d96d7eff6efc - GitDiffDeltaStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    19
    wcs at: package ifPresent:[ :wc | ^ wc ].
d96d7eff6efc - GitDiffDeltaStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    20
    dir := Smalltalk getPackageDirectoryForPackage: package.
d96d7eff6efc - GitDiffDeltaStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    21
    dir := GitRepository discover: dir.
d96d7eff6efc - GitDiffDeltaStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    22
    dir isNil ifTrue:[
d96d7eff6efc - GitDiffDeltaStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    23
        GitError raiseErrorString: 'No repository found for package ',package.
d96d7eff6efc - GitDiffDeltaStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    24
        ^nil.
d96d7eff6efc - GitDiffDeltaStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    25
    ].
d96d7eff6efc - GitDiffDeltaStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    26
    repo := repositories at: dir ifAbsentPut: [ GitRepository open: dir ].
45
dfe5c7416a4e Refactoring to reuse classes from stx:libscm/common
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 31
diff changeset
    27
    ^packages at: package ifAbsentPut: [ GitPackageModel name: package repository: repo ].
31
d96d7eff6efc - GitDiffDeltaStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    28
d96d7eff6efc - GitDiffDeltaStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    29
    "Created: / 06-10-2012 / 22:40:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
45
dfe5c7416a4e Refactoring to reuse classes from stx:libscm/common
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 31
diff changeset
    30
    "Modified: / 14-11-2012 / 00:34:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
31
d96d7eff6efc - GitDiffDeltaStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    31
! !
d96d7eff6efc - GitDiffDeltaStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    32
45
dfe5c7416a4e Refactoring to reuse classes from stx:libscm/common
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 31
diff changeset
    33
!GitPackageModelRegistry class methodsFor:'documentation'!
31
d96d7eff6efc - GitDiffDeltaStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    34
d96d7eff6efc - GitDiffDeltaStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    35
version_GIT
d96d7eff6efc - GitDiffDeltaStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    36
    "Never, ever change this method. Ask JV or CG why"
d96d7eff6efc - GitDiffDeltaStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    37
    ^thisContext method mclass theNonMetaclass instVarNamed: #revision
d96d7eff6efc - GitDiffDeltaStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    38
!
d96d7eff6efc - GitDiffDeltaStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    39
d96d7eff6efc - GitDiffDeltaStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    40
version_SVN
481
0cfef855baa2 Initial import from upstream repository
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 45
diff changeset
    41
    ^ '$Id$'
31
d96d7eff6efc - GitDiffDeltaStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    42
! !