git/GitPackageModelRegistry.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Thu, 29 Mar 2018 22:22:31 +0100
changeset 816 1d895084db29
parent 481 0cfef855baa2
child 876 2643ba2d9c52
permissions -rw-r--r--
Fixed `HGChangeset >> #successors` for Mercurial < 4.1 ...which does not support `successors()` in revset. In this case, return an empty successors and don't show "reconcile" button in commit dialog. There well may be other way to get successors on Mercurial 4.0, just I'm not aware of it. Once found, this limitation will be lifted.
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
! !