class: AbstractFileBrowser
added:
#commitFilesToCVS:
#cvsCommitFiles:
changed: #cvsCommit
--- a/AbstractFileBrowser.st Mon May 27 10:32:39 2013 +0200
+++ b/AbstractFileBrowser.st Tue May 28 12:34:21 2013 +0200
@@ -5438,6 +5438,16 @@
!AbstractFileBrowser methodsFor:'menu actions-scm-cvs'!
+commitFilesToCVS:files
+ |numFiles|
+
+ (numFiles := files size) > 0 ifTrue:[
+ self withActivityIndicationDo:[
+ self cvsCommitFiles:files
+ ]
+ ]
+!
+
cvsAddAndCommit
self cvsAddAndCommitAsBinary:false
!
@@ -5503,16 +5513,23 @@
!
cvsCommit
- |nSel log logArg msg cmd selectedFiles sel executionBlock nameString|
+ |selectedFiles|
selectedFiles:= self currentSelectedFiles.
- nSel := selectedFiles size.
-
- nSel == 1 ifTrue:[
- msg := resources string:'Enter log message for checkIn of "%1"' with:(selectedFiles first baseName)
+ self cvsCommitFiles:selectedFiles
+!
+
+cvsCommitFiles:files
+ |nFiles log logTmp s logArg msg executionBlock nameString |
+
+ nFiles := files size.
+ nFiles == 0 ifTrue:[^ self].
+
+ nFiles == 1 ifTrue:[
+ msg := resources string:'Enter log message for checkIn of "%1"' with:(files first baseName)
] ifFalse:[
- nSel > 1 ifTrue:[
- msg := resources string:'Enter log message for %1 files to checkIn' with:nSel printString
+ nFiles > 1 ifTrue:[
+ msg := resources string:'Enter log message for %1 files to checkIn' with:nFiles printString
] ifFalse:[
msg := resources string:'Enter log message for checkIn'
]
@@ -5525,34 +5542,37 @@
initialAnswer:nil.
log isNil ifTrue:[^ self].
+ log := log replChar:$" withString:'\"'.
OperatingSystem isMSWINDOWSlike ifTrue:[
- logArg := '-m "' , log , '"'.
+ "/ save the log message into another tempFile ...
+ logTmp := Filename newTemporary.
+ s := logTmp writeStream.
+ s nextPutAll:log.
+ s close.
+
+ logArg := '-F "', logTmp pathName, '"'.
] ifFalse:[
logArg := '-m ''' , log , ''''.
].
- sel := self currentSelectedObjects.
- sel isEmpty ifTrue:[ ^ self ].
-
executionBlock := [:stream |
- log notNil ifTrue:[
- sel size > 0 ifTrue:[
- sel do:[:fn |
- | dir nameArg |
-
- nameArg := '"',fn baseName,'"'.
- dir := fn directory.
- cmd := 'cvs commit ',logArg,' ' , nameArg.
- (self getExecutionBlockForCommand:cmd inDirectory:dir) value:stream.
- ]
+ [
+ files do:[:fn |
+ | dir nameArg cmd |
+
+ nameArg := '"',fn baseName,'"'.
+ dir := fn directory.
+ cmd := 'cvs commit ',logArg,' ' , nameArg.
+stream showCR:fn pathName.
+ (self getExecutionBlockForCommand:cmd inDirectory:dir) value:stream.
]
- ]
+ ] ensure:[
+ logTmp notNil ifTrue:[ logTmp remove ].
+ ].
].
nameString := 'Command> cvs commit'.
self makeExecutionResultProcessFor:executionBlock withName:nameString.
-
- "Modified: / 04-12-2006 / 13:16:39 / cg"
!
cvsCompareWithNewest
@@ -9201,10 +9221,10 @@
!AbstractFileBrowser class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/AbstractFileBrowser.st,v 1.520 2013-05-21 20:06:34 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/AbstractFileBrowser.st,v 1.521 2013-05-28 10:34:21 cg Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libtool/AbstractFileBrowser.st,v 1.520 2013-05-21 20:06:34 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/AbstractFileBrowser.st,v 1.521 2013-05-28 10:34:21 cg Exp $'
! !