SVN__CommitTask.st
author fm
Wed, 23 Sep 2009 18:47:31 +0200
changeset 49 033a7e409639
child 198 9942a71487d0
permissions -rw-r--r--
initial checkin
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
49
033a7e409639 initial checkin
fm
parents:
diff changeset
     1
"{ Package: 'cvut:stx/goodies/libsvn' }"
033a7e409639 initial checkin
fm
parents:
diff changeset
     2
033a7e409639 initial checkin
fm
parents:
diff changeset
     3
"{ NameSpace: SVN }"
033a7e409639 initial checkin
fm
parents:
diff changeset
     4
033a7e409639 initial checkin
fm
parents:
diff changeset
     5
FileoutLikeTask subclass:#CommitTask
033a7e409639 initial checkin
fm
parents:
diff changeset
     6
	instanceVariableNames:'extensionMethods message'
033a7e409639 initial checkin
fm
parents:
diff changeset
     7
	classVariableNames:''
033a7e409639 initial checkin
fm
parents:
diff changeset
     8
	poolDictionaries:''
033a7e409639 initial checkin
fm
parents:
diff changeset
     9
	category:'SVN-Tasks'
033a7e409639 initial checkin
fm
parents:
diff changeset
    10
!
033a7e409639 initial checkin
fm
parents:
diff changeset
    11
033a7e409639 initial checkin
fm
parents:
diff changeset
    12
!CommitTask class methodsFor:'documentation'!
033a7e409639 initial checkin
fm
parents:
diff changeset
    13
033a7e409639 initial checkin
fm
parents:
diff changeset
    14
version_SVN
033a7e409639 initial checkin
fm
parents:
diff changeset
    15
    ^'$Id$'
033a7e409639 initial checkin
fm
parents:
diff changeset
    16
! !
033a7e409639 initial checkin
fm
parents:
diff changeset
    17
033a7e409639 initial checkin
fm
parents:
diff changeset
    18
!CommitTask methodsFor:'accessing'!
033a7e409639 initial checkin
fm
parents:
diff changeset
    19
033a7e409639 initial checkin
fm
parents:
diff changeset
    20
buildSupportFilesFor: pkgDef
033a7e409639 initial checkin
fm
parents:
diff changeset
    21
033a7e409639 initial checkin
fm
parents:
diff changeset
    22
    | common |
033a7e409639 initial checkin
fm
parents:
diff changeset
    23
    common := #('abbrev.stc' 'Make.proto' 'Make.spec').    
033a7e409639 initial checkin
fm
parents:
diff changeset
    24
    ^pkgDef isApplicationDefinition
033a7e409639 initial checkin
fm
parents:
diff changeset
    25
        ifTrue:[common]
033a7e409639 initial checkin
fm
parents:
diff changeset
    26
        ifFalse:[common copyWith: 'libInit.cc']
033a7e409639 initial checkin
fm
parents:
diff changeset
    27
        
033a7e409639 initial checkin
fm
parents:
diff changeset
    28
    "
033a7e409639 initial checkin
fm
parents:
diff changeset
    29
        SVN::CommitTask basicNew buildSupportFilesFor: stx_goodies_libsvn
033a7e409639 initial checkin
fm
parents:
diff changeset
    30
    "
033a7e409639 initial checkin
fm
parents:
diff changeset
    31
033a7e409639 initial checkin
fm
parents:
diff changeset
    32
    "Created: / 20-06-2009 / 12:03:51 / Jan Vrany <vranyj1@fel.cvut.cz>"
033a7e409639 initial checkin
fm
parents:
diff changeset
    33
!
033a7e409639 initial checkin
fm
parents:
diff changeset
    34
033a7e409639 initial checkin
fm
parents:
diff changeset
    35
extensionMethods
033a7e409639 initial checkin
fm
parents:
diff changeset
    36
    ^ extensionMethods
033a7e409639 initial checkin
fm
parents:
diff changeset
    37
!
033a7e409639 initial checkin
fm
parents:
diff changeset
    38
033a7e409639 initial checkin
fm
parents:
diff changeset
    39
extensionMethods:aCollection"of Methods"
033a7e409639 initial checkin
fm
parents:
diff changeset
    40
033a7e409639 initial checkin
fm
parents:
diff changeset
    41
    extensionMethods := aCollection.
033a7e409639 initial checkin
fm
parents:
diff changeset
    42
033a7e409639 initial checkin
fm
parents:
diff changeset
    43
    "Modified: / 14-05-2009 / 13:38:15 / Jan Vrany <vranyj1@fel.cvut.cz>"
033a7e409639 initial checkin
fm
parents:
diff changeset
    44
!
033a7e409639 initial checkin
fm
parents:
diff changeset
    45
033a7e409639 initial checkin
fm
parents:
diff changeset
    46
message
033a7e409639 initial checkin
fm
parents:
diff changeset
    47
    ^ message
033a7e409639 initial checkin
fm
parents:
diff changeset
    48
!
033a7e409639 initial checkin
fm
parents:
diff changeset
    49
033a7e409639 initial checkin
fm
parents:
diff changeset
    50
message:aString
033a7e409639 initial checkin
fm
parents:
diff changeset
    51
    message := aString.
033a7e409639 initial checkin
fm
parents:
diff changeset
    52
! !
033a7e409639 initial checkin
fm
parents:
diff changeset
    53
033a7e409639 initial checkin
fm
parents:
diff changeset
    54
!CommitTask methodsFor:'executing'!
033a7e409639 initial checkin
fm
parents:
diff changeset
    55
033a7e409639 initial checkin
fm
parents:
diff changeset
    56
do
033a7e409639 initial checkin
fm
parents:
diff changeset
    57
033a7e409639 initial checkin
fm
parents:
diff changeset
    58
    self
033a7e409639 initial checkin
fm
parents:
diff changeset
    59
        doUpdateWorkingCopy;
033a7e409639 initial checkin
fm
parents:
diff changeset
    60
        doCommit
033a7e409639 initial checkin
fm
parents:
diff changeset
    61
033a7e409639 initial checkin
fm
parents:
diff changeset
    62
    "Created: / 23-03-2009 / 11:15:37 / Jan Vrany <vranyj1@fel.cvut.cz>"
033a7e409639 initial checkin
fm
parents:
diff changeset
    63
    "Modified: / 17-06-2009 / 10:16:37 / Jan Vrany <vranyj1@fel.cvut.cz>"
033a7e409639 initial checkin
fm
parents:
diff changeset
    64
!
033a7e409639 initial checkin
fm
parents:
diff changeset
    65
033a7e409639 initial checkin
fm
parents:
diff changeset
    66
doCommit
033a7e409639 initial checkin
fm
parents:
diff changeset
    67
    | containers  commitInfo |
033a7e409639 initial checkin
fm
parents:
diff changeset
    68
033a7e409639 initial checkin
fm
parents:
diff changeset
    69
    self do: 
033a7e409639 initial checkin
fm
parents:
diff changeset
    70
            [ SVN::ActivityNotification notify: 'Commiting ' , self package.
033a7e409639 initial checkin
fm
parents:
diff changeset
    71
            containers := self isSelectiveFileoutTask 
033a7e409639 initial checkin
fm
parents:
diff changeset
    72
                        ifTrue: [ self containersToFileOut ]
033a7e409639 initial checkin
fm
parents:
diff changeset
    73
                        ifFalse: [ #() ].
033a7e409639 initial checkin
fm
parents:
diff changeset
    74
            self synchronized: 
033a7e409639 initial checkin
fm
parents:
diff changeset
    75
                    [ commitInfo := (CommitCommand new)
033a7e409639 initial checkin
fm
parents:
diff changeset
    76
                                workingCopy: self workingCopy;
033a7e409639 initial checkin
fm
parents:
diff changeset
    77
                                message: message ? '<no message>';
033a7e409639 initial checkin
fm
parents:
diff changeset
    78
                                paths: containers;
033a7e409639 initial checkin
fm
parents:
diff changeset
    79
                                execute.
033a7e409639 initial checkin
fm
parents:
diff changeset
    80
                     "Update the working copy. We need svn info
033a7e409639 initial checkin
fm
parents:
diff changeset
    81
                     to report commited revision"
033a7e409639 initial checkin
fm
parents:
diff changeset
    82
                    (UpdateCommand new)
033a7e409639 initial checkin
fm
parents:
diff changeset
    83
                        workingCopy: self workingCopy;
033a7e409639 initial checkin
fm
parents:
diff changeset
    84
                        execute ].
033a7e409639 initial checkin
fm
parents:
diff changeset
    85
            self doCompileSvnRevisionNrMethod: true.
033a7e409639 initial checkin
fm
parents:
diff changeset
    86
            SVN::ActivityNotification notify: 'Shrinking changes'.
033a7e409639 initial checkin
fm
parents:
diff changeset
    87
            (ChangeSet current)
033a7e409639 initial checkin
fm
parents:
diff changeset
    88
                condenseChangesForPackage2: self package;
033a7e409639 initial checkin
fm
parents:
diff changeset
    89
                condenseChangesForExtensionsInPackage: self package;
033a7e409639 initial checkin
fm
parents:
diff changeset
    90
                flushChangedClassesCache;
033a7e409639 initial checkin
fm
parents:
diff changeset
    91
                yourself. ].
033a7e409639 initial checkin
fm
parents:
diff changeset
    92
    self workingCopy commited.
033a7e409639 initial checkin
fm
parents:
diff changeset
    93
    ^ commitInfo
033a7e409639 initial checkin
fm
parents:
diff changeset
    94
033a7e409639 initial checkin
fm
parents:
diff changeset
    95
    "Created: / 11-04-2008 / 09:20:01 / Jan Vrany <vranyj1@fel.cvut.cz>"
033a7e409639 initial checkin
fm
parents:
diff changeset
    96
    "Modified: / 19-08-2009 / 12:27:44 / Jan Vrany <vranyj1@fel.cvut.cz>"
033a7e409639 initial checkin
fm
parents:
diff changeset
    97
!
033a7e409639 initial checkin
fm
parents:
diff changeset
    98
033a7e409639 initial checkin
fm
parents:
diff changeset
    99
doUpdateWorkingCopy
033a7e409639 initial checkin
fm
parents:
diff changeset
   100
033a7e409639 initial checkin
fm
parents:
diff changeset
   101
    self do:[
033a7e409639 initial checkin
fm
parents:
diff changeset
   102
        self workingCopy ensureIsValid.
033a7e409639 initial checkin
fm
parents:
diff changeset
   103
        self doFileOutAll
033a7e409639 initial checkin
fm
parents:
diff changeset
   104
    ]
033a7e409639 initial checkin
fm
parents:
diff changeset
   105
033a7e409639 initial checkin
fm
parents:
diff changeset
   106
    "Created: / 11-04-2008 / 09:19:27 / Jan Vrany <vranyj1@fel.cvut.cz>"
033a7e409639 initial checkin
fm
parents:
diff changeset
   107
    "Modified: / 17-08-2009 / 18:28:34 / Jan Vrany <vranyj1@fel.cvut.cz>"
033a7e409639 initial checkin
fm
parents:
diff changeset
   108
! !
033a7e409639 initial checkin
fm
parents:
diff changeset
   109
033a7e409639 initial checkin
fm
parents:
diff changeset
   110
!CommitTask class methodsFor:'documentation'!
033a7e409639 initial checkin
fm
parents:
diff changeset
   111
033a7e409639 initial checkin
fm
parents:
diff changeset
   112
version
033a7e409639 initial checkin
fm
parents:
diff changeset
   113
    ^ '$Header$'
033a7e409639 initial checkin
fm
parents:
diff changeset
   114
! !