SVN__WCCommand.st
author fm
Tue, 29 Sep 2009 17:17:48 +0200
changeset 160 1e872a62c0f6
parent 95 135571c6804f
child 322 edc4da7b7e84
permissions -rw-r--r--
changed: #version_SVN

"{ Package: 'cvut:stx/goodies/libsvn' }"

"{ NameSpace: SVN }"

Command subclass:#WCCommand
	instanceVariableNames:'alreadyCleaned workingCopy'
	classVariableNames:''
	poolDictionaries:''
	category:'SVN-Private-Commands'
!


!WCCommand methodsFor:'accessing'!

workingCopy
    ^ workingCopy

    "Created: / 16-03-2008 / 10:10:38 / janfrog"
!

workingCopy:aSVNWorkingCopy

    self assert: (aSVNWorkingCopy isKindOf: SVN::WorkingCopy).

    workingCopy := aSVNWorkingCopy.

    "Created: / 16-03-2008 / 10:10:38 / janfrog"
    "Modified: / 19-08-2009 / 11:28:58 / Jan Vrany <vranyj1@fel.cvut.cz>"
! !

!WCCommand methodsFor:'executing'!

execute
    ^[super execute] on:SVN::WorkingCopyLockedError do:
        [:ex | 
        alreadyCleaned 
            ifTrue:
                [ex pass]
            ifFalse:
                [self svnCleanup.
                alreadyCleaned := true.
                self execute]]

    "Created: / 08-11-2008 / 08:30:34 / Jan Vrany <vranyj1@fel.cvut.cz>"
! !

!WCCommand methodsFor:'executing - private'!

svnCleanup

    ^CleanupCommand new
        workingCopy: workingCopy;
        execute.

    "Created: / 08-11-2008 / 08:14:29 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

svnCmdArgumentsOn:arg 

    "arg nextPut:'-m'; nextPut: (message ? '')"

    "Created: / 16-03-2008 / 10:18:46 / janfrog"
    "Modified: / 19-03-2008 / 15:58:57 / janfrog"
!

svnCmdWorkdir
    "raise an error: must be redefined in concrete subclass(es)"

    ^workingCopy path pathName

    "Created: / 16-03-2008 / 10:10:34 / janfrog"
    "Modified: / 19-08-2009 / 11:29:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

svnProcessCommandOutput:out err:err 
    ^ out contents

    "Created: / 03-10-2008 / 16:31:45 / Jan Vrany <vranyj1@fel.cvut.cz>"
! !

!WCCommand methodsFor:'initialization'!

initialize

    super initialize.
    alreadyCleaned := false

    "Created: / 08-11-2008 / 08:15:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
! !

!WCCommand class methodsFor:'documentation'!

version
    ^ '$Header$'
!

version_CVS
    ^ '$Header$'
!

version_SVN
    ^'Id: SVN__WCCommand.st 110 2009-08-19 13:21:10Z vranyj1 '
! !