git/GitPackageModelRegistry.st
author Jan Vrany <jan.vrany@labware.com>
Wed, 06 Oct 2021 12:07:04 +0100
changeset 932 fa801680bb02
parent 481 0cfef855baa2
child 876 2643ba2d9c52
permissions -rw-r--r--
Make use of original working copy the default Also use shared working copy if original working copy cannot be used. These two options has been used (by JV) for more than a year and seem to work fine.
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
! !