- HGWorkingCopyFile
changed: #status
- HGCommandParser
changed:
#nextLine
#nextSpace
- HGTests
changed: #test_01a
- HGStatus
added: #theOnlyInstance
- HGCommand
class definition
added: #initialize
changed: #execute
"{ Package: 'stx:libscm/mercurial' }"
Singleton subclass:#HGStatus
instanceVariableNames:''
classVariableNames:''
poolDictionaries:''
category:'SCM-Mercurial-Core'
!
HGStatus subclass:#Added
instanceVariableNames:''
classVariableNames:''
poolDictionaries:''
privateIn:HGStatus
!
HGStatus subclass:#Clean
instanceVariableNames:''
classVariableNames:''
poolDictionaries:''
privateIn:HGStatus
!
HGStatus subclass:#Ignored
instanceVariableNames:''
classVariableNames:''
poolDictionaries:''
privateIn:HGStatus
!
HGStatus subclass:#Missing
instanceVariableNames:''
classVariableNames:''
poolDictionaries:''
privateIn:HGStatus
!
HGStatus subclass:#Modified
instanceVariableNames:''
classVariableNames:''
poolDictionaries:''
privateIn:HGStatus
!
HGStatus subclass:#NotTracked
instanceVariableNames:''
classVariableNames:''
poolDictionaries:''
privateIn:HGStatus
!
HGStatus subclass:#Removed
instanceVariableNames:''
classVariableNames:''
poolDictionaries:''
privateIn:HGStatus
!
!HGStatus class methodsFor:'instance creation'!
forCode: aCharacter
self allSubclasses do:[:cls|
cls code == aCharacter ifTrue:[ ^ cls theOnlyInstance ]
].
self error:'Invalid status code: ', aCharacter
"Created: / 23-10-2012 / 10:56:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
theOnlyInstance
theOnlyInstance isNil ifTrue:[
Lock critical:[
theOnlyInstance isNil ifTrue:[
theOnlyInstance := self new
].
]
].
^ theOnlyInstance.
"Created: / 09-11-2012 / 12:04:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!HGStatus class methodsFor:'accessing'!
code
"Return one-char code as used by 'hg status' command,
i.e., $A for added, $!! for missing, ..."
^self subclassResponsibility
"Created: / 22-10-2012 / 21:27:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!HGStatus class methodsFor:'accessing-statuses'!
added
^ Added theOnlyInstance
"Created: / 23-10-2012 / 09:56:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
clean
^ Clean theOnlyInstance
"Created: / 23-10-2012 / 09:56:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
ignored
^ Ignored theOnlyInstance
"Created: / 23-10-2012 / 09:57:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
missing
^ Missing theOnlyInstance
"Created: / 23-10-2012 / 09:56:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
notTracked
^ NotTracked theOnlyInstance
"Created: / 23-10-2012 / 09:57:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
removed
^ Removed theOnlyInstance
"Created: / 23-10-2012 / 09:56:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!HGStatus methodsFor:'accessing'!
code
^ self class code
!
name
"Return a human-readable name of the status code,
i.e., 'modified', 'ignored', ..."
^self class nameWithoutPrefix asLowercase
"Created: / 22-10-2012 / 21:26:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
"Modified: / 23-10-2012 / 09:58:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!HGStatus methodsFor:'testing'!
isAdded
^ false
!
isClean
^ false
!
isIgnored
^ false
!
isMissing
^ false
!
isModified
^ false
!
isNotTracked
^ false
!
isRemoved
^ false
! !
!HGStatus::Added class methodsFor:'accessing'!
code
"Return one-char code as used by 'hg status' command,
i.e., $A for added, $!! for missing, ..."
^ $A
"Modified: / 23-10-2012 / 09:57:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!HGStatus::Added methodsFor:'testing'!
isAdded
^ true
! !
!HGStatus::Clean class methodsFor:'accessing'!
code
"Return one-char code as used by 'hg status' command,
i.e., $A for added, $!! for missing, ..."
^ $C
"Modified: / 23-10-2012 / 09:57:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!HGStatus::Clean methodsFor:'testing'!
isClean
^ true
! !
!HGStatus::Ignored class methodsFor:'accessing'!
code
"Return one-char code as used by 'hg status' command,
i.e., $A for added, $!! for missing, ..."
^ $I
"Modified: / 23-10-2012 / 09:57:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!HGStatus::Ignored methodsFor:'testing'!
isIgnored
^ true
! !
!HGStatus::Missing class methodsFor:'accessing'!
code
"Return one-char code as used by 'hg status' command,
i.e., $A for added, $!! for missing, ..."
^ $!!
"Modified: / 23-10-2012 / 09:57:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!HGStatus::Missing methodsFor:'testing'!
isMissing
^ true
! !
!HGStatus::Modified class methodsFor:'accessing'!
code
"Return one-char code as used by 'hg status' command,
i.e., $A for added, $!! for missing, ..."
^ $M
"Modified: / 23-10-2012 / 09:57:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!HGStatus::Modified methodsFor:'testing'!
isModified
^ true
! !
!HGStatus::NotTracked class methodsFor:'accessing'!
code
"Return one-char code as used by 'hg status' command,
i.e., $A for added, $!! for missing, ..."
^ $?
"Modified: / 23-10-2012 / 09:58:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!HGStatus::NotTracked methodsFor:'testing'!
isNotTracked
^ true
! !
!HGStatus::Removed class methodsFor:'accessing'!
code
"Return one-char code as used by 'hg status' command,
i.e., $A for added, $!! for missing, ..."
^ $R
"Modified: / 23-10-2012 / 11:24:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!HGStatus::Removed methodsFor:'testing'!
isRemoved
^ true
! !
!HGStatus class methodsFor:'documentation'!
version_SVN
^ '$Id:: $'
! !