mercurial/HGChangesetFile.st
author Jan Vrany <jan.vrany@labware.com>
Fri, 19 Feb 2021 08:29:41 +0000
changeset 924 4d92f234f671
parent 910 d347b4bedf2b
permissions -rw-r--r--
Rework and fix HGSourceCodeManager >> #revisionLogOf:...directory:module:` This commit changes the logic in two ways: 1. #newestRevision is now the newest revision in the branch that *contains* given file (not necesarily modidfes it). If there are multiple heads in that branch, pretty much random one is returned. This changes old behavior and therefore this commit updates tests. 2. If a specific single revision is requested, i.e., both from and to revisions are the same, revision log with that single revision is returned no matter whether it modifies the file or even contains that file at all. This is essentially a workaround to fix issue #305. Moreover, this commit simplifies the code a lot by delegating all the changeset searching and filtering to mercurial using revset expressions. See https://swing.fit.cvut.cz/projects/stx-jv/ticket/305#comment:3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
210
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 190
diff changeset
     1
"
335
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
     2
stx:libscm - a new source code management library for Smalltalk/X
509
f92210d4585b Updated copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 397
diff changeset
     3
Copyright (C) 2012-2015 Jan Vrany
910
d347b4bedf2b Introduce `HGMergeTool` - a merge tool for Smalltalk/X source files
Jan Vrany <jan.vrany@labware.com>
parents: 817
diff changeset
     4
Copyright (C) 2020 LabWare
335
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
     5
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
     6
This library is free software; you can redistribute it and/or
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
     7
modify it under the terms of the GNU Lesser General Public
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
     8
License as published by the Free Software Foundation; either
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
     9
version 2.1 of the License. 
210
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 190
diff changeset
    10
335
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
    11
This library is distributed in the hope that it will be useful,
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
    12
but WITHOUT ANY WARRANTY; without even the implied warranty of
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
    13
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
    14
Lesser General Public License for more details.
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
    15
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
    16
You should have received a copy of the GNU Lesser General Public
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
    17
License along with this library; if not, write to the Free Software
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
    18
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
210
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 190
diff changeset
    19
"
69
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    20
"{ Package: 'stx:libscm/mercurial' }"
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    21
817
e38e4f23a097 Added tool to update copyright notices in files based on commits
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
    22
"{ NameSpace: Smalltalk }"
e38e4f23a097 Added tool to update copyright notices in files based on commits
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
    23
69
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    24
Object subclass:#HGChangesetFile
71
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
    25
	instanceVariableNames:'changeset name parent children'
69
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    26
	classVariableNames:''
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    27
	poolDictionaries:''
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    28
	category:'SCM-Mercurial-Core'
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    29
!
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    30
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    31
!HGChangesetFile class methodsFor:'documentation'!
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    32
210
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 190
diff changeset
    33
copyright
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 190
diff changeset
    34
"
335
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
    35
stx:libscm - a new source code management library for Smalltalk/X
509
f92210d4585b Updated copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 397
diff changeset
    36
Copyright (C) 2012-2015 Jan Vrany
910
d347b4bedf2b Introduce `HGMergeTool` - a merge tool for Smalltalk/X source files
Jan Vrany <jan.vrany@labware.com>
parents: 817
diff changeset
    37
Copyright (C) 2020 LabWare
335
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
    38
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
    39
This library is free software; you can redistribute it and/or
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
    40
modify it under the terms of the GNU Lesser General Public
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
    41
License as published by the Free Software Foundation; either
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
    42
version 2.1 of the License. 
210
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 190
diff changeset
    43
335
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
    44
This library is distributed in the hope that it will be useful,
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
    45
but WITHOUT ANY WARRANTY; without even the implied warranty of
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
    46
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
    47
Lesser General Public License for more details.
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
    48
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
    49
You should have received a copy of the GNU Lesser General Public
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
    50
License along with this library; if not, write to the Free Software
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 323
diff changeset
    51
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
210
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 190
diff changeset
    52
"
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 190
diff changeset
    53
!
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 190
diff changeset
    54
69
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    55
documentation
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    56
"
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    57
    A representation on a file in working copy. It behaves just like 
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    58
    ordinary filename but also provides methods for quering it's
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    59
    state (added/removed/modified...), access to previous versions
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    60
    and so on.
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    61
71
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
    62
    The protocol of HGChangesetFile is Filename-like, however,
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
    63
    no modification is allowed.
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
    64
69
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    65
    [author:]
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    66
        Jan Vrany <jan.vrany@fit.cvut.cz>
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    67
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    68
    [instance variables:]
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    69
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    70
    [class variables:]
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    71
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    72
    [see also:]
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    73
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    74
"
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    75
! !
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    76
71
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
    77
!HGChangesetFile methodsFor:'accessing'!
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
    78
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
    79
/ aString
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
    80
    ^self construct: aString
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
    81
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
    82
    "Created: / 16-11-2012 / 23:47:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
    83
!
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
    84
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
    85
baseName
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
    86
    ^name
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
    87
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
    88
    "Created: / 17-11-2012 / 00:00:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
    89
!
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
    90
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
    91
changeset
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
    92
    ^ changeset
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
    93
!
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
    94
190
a4a4b6f2fc52 Performance optimization in HGWorkingCopyFile.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
    95
changesetId
a4a4b6f2fc52 Performance optimization in HGWorkingCopyFile.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
    96
    ^ changeset id
a4a4b6f2fc52 Performance optimization in HGWorkingCopyFile.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
    97
a4a4b6f2fc52 Performance optimization in HGWorkingCopyFile.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
    98
    "Created: / 22-01-2013 / 13:36:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a4a4b6f2fc52 Performance optimization in HGWorkingCopyFile.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
    99
!
a4a4b6f2fc52 Performance optimization in HGWorkingCopyFile.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
   100
71
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   101
children
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   102
    ^ children
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   103
!
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   104
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   105
construct: aString
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   106
    "Returns a child name aString. If no such child
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   107
     exist, raise an error."
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   108
121
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   109
    | components file |
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   110
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   111
    ( aString includes: $/ ) ifTrue:[
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   112
        components := aString tokensBasedOn: $/.
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   113
    ] ifFalse:[
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   114
        ( aString includes: Filename separator ) ifTrue:[
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   115
            components := aString tokensBasedOn: Filename separator.
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   116
        ] ifFalse:[
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   117
            ^self childNamed: aString
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   118
        ]
71
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   119
    ].
121
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   120
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   121
    file := self.
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   122
    components do:[:each|file := file childNamed: each].
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   123
    ^file
71
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   124
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   125
    "Created: / 16-11-2012 / 23:47:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
121
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   126
    "Modified: / 01-12-2012 / 01:33:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
71
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   127
!
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   128
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   129
directory
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   130
    ^parent
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   131
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   132
    "Created: / 16-11-2012 / 23:50:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   133
!
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   134
138
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 126
diff changeset
   135
newer
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 126
diff changeset
   136
    "Return newer revisions of given file based immediately on the recevier"
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 126
diff changeset
   137
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 126
diff changeset
   138
    ^self newer: false
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 126
diff changeset
   139
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 126
diff changeset
   140
    "Created: / 06-12-2012 / 00:09:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 126
diff changeset
   141
!
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 126
diff changeset
   142
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 126
diff changeset
   143
newer: recursively
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 126
diff changeset
   144
    "Return newer revisions of given file based on the recevier. If
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 126
diff changeset
   145
     recursively is true, than all newer revisions are returned.
323
7a39e728a3ac When running tests, make sure Class>>#tryLocalSourceFirst: has defined value.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 278
diff changeset
   146
     otherwise only those based immediately on the receiver
138
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 126
diff changeset
   147
    "
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 126
diff changeset
   148
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 126
diff changeset
   149
    | queue newer path |
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 126
diff changeset
   150
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 126
diff changeset
   151
    path := self pathName.
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 126
diff changeset
   152
    queue := Stack withAll: (changeset children collect:[:e|Array with: e with: path]).
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 126
diff changeset
   153
    newer := OrderedCollection new.
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 126
diff changeset
   154
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 126
diff changeset
   155
    [ queue notEmpty ] whileTrue:[
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 126
diff changeset
   156
        | pair cs cont p |
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 126
diff changeset
   157
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 126
diff changeset
   158
        cs := queue top first.
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 126
diff changeset
   159
        p := queue top second.
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 126
diff changeset
   160
        queue pop.
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 126
diff changeset
   161
        cont := true.
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 126
diff changeset
   162
        cs changes do:[:chg|
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 126
diff changeset
   163
            "/Catch renames...
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 126
diff changeset
   164
            (chg isCopied and:[chg source = p]) ifTrue:[
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 126
diff changeset
   165
                p := chg path.
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 126
diff changeset
   166
            ].
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 126
diff changeset
   167
            chg path = p ifTrue:[
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 126
diff changeset
   168
                cont := false.
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 126
diff changeset
   169
                chg isRemoved ifFalse:[
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 126
diff changeset
   170
                    newer add: cs / p.
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 126
diff changeset
   171
                ].
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 126
diff changeset
   172
            ].
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 126
diff changeset
   173
        ].
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 126
diff changeset
   174
        (cont or:[recursively]) ifTrue:[
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 126
diff changeset
   175
            queue addAll: (cs children collect:[:e|Array with: e with: p]).
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 126
diff changeset
   176
        ].
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 126
diff changeset
   177
    ].
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 126
diff changeset
   178
    ^newer reversed
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 126
diff changeset
   179
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 126
diff changeset
   180
    "Created: / 06-12-2012 / 00:12:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
323
7a39e728a3ac When running tests, make sure Class>>#tryLocalSourceFirst: has defined value.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 278
diff changeset
   181
    "Modified (comment): / 08-07-2013 / 02:22:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
138
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 126
diff changeset
   182
!
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 126
diff changeset
   183
71
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   184
parent
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   185
    ^ parent
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   186
!
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   187
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   188
pathName
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   189
    ^String streamContents:[:s|self printPathOn: s].
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   190
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   191
    "Created: / 16-11-2012 / 23:55:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   192
!
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   193
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   194
readStream
278
4bacce9509fe Workaround in HGChangesetFile>>readStream.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   195
    | file |
71
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   196
278
4bacce9509fe Workaround in HGChangesetFile>>readStream.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   197
    "Sigh, pipes on Windows does not work correctly, create
4bacce9509fe Workaround in HGChangesetFile>>readStream.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   198
     a temporary file then..."
4bacce9509fe Workaround in HGChangesetFile>>readStream.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   199
    ^ OperatingSystem isMSWINDOWSlike ifTrue:[
4bacce9509fe Workaround in HGChangesetFile>>readStream.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   200
        file := Filename newTemporary.
4bacce9509fe Workaround in HGChangesetFile>>readStream.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   201
        HGCommand cat
4bacce9509fe Workaround in HGChangesetFile>>readStream.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   202
            workingDirectory: self repository pathName;
4bacce9509fe Workaround in HGChangesetFile>>readStream.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   203
            path: self pathName;
4bacce9509fe Workaround in HGChangesetFile>>readStream.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   204
            revision: changeset id revno;
4bacce9509fe Workaround in HGChangesetFile>>readStream.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   205
            destination: file pathName;
4bacce9509fe Workaround in HGChangesetFile>>readStream.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   206
            execute.
4bacce9509fe Workaround in HGChangesetFile>>readStream.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   207
        file readStream
4bacce9509fe Workaround in HGChangesetFile>>readStream.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   208
    ] ifFalse:[
4bacce9509fe Workaround in HGChangesetFile>>readStream.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   209
        HGCommand cat
71
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   210
            workingDirectory: self repository pathName;
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   211
            path: self pathName;
116
b690f5845323 Class revision ID refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   212
            revision: changeset id revno;
71
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   213
            execute.
278
4bacce9509fe Workaround in HGChangesetFile>>readStream.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   214
    ].
71
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   215
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   216
    "Created: / 17-11-2012 / 00:00:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
278
4bacce9509fe Workaround in HGChangesetFile>>readStream.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   217
    "Modified: / 26-03-2013 / 11:16:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
71
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   218
!
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   219
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   220
repository
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   221
    ^self changeset repository
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   222
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   223
    "Created: / 17-11-2012 / 00:05:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
817
e38e4f23a097 Added tool to update copyright notices in files based on commits
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
   224
!
e38e4f23a097 Added tool to update copyright notices in files based on commits
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
   225
e38e4f23a097 Added tool to update copyright notices in files based on commits
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
   226
sha1
e38e4f23a097 Added tool to update copyright notices in files based on commits
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
   227
    "Returns a SHA1 sum of file's contents"
e38e4f23a097 Added tool to update copyright notices in files based on commits
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
   228
    | sha1 |
e38e4f23a097 Added tool to update copyright notices in files based on commits
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
   229
e38e4f23a097 Added tool to update copyright notices in files based on commits
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
   230
    self readingFileDo:[:s | sha1 := SHA1Stream hashValueOf:s].
e38e4f23a097 Added tool to update copyright notices in files based on commits
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
   231
    ^ sha1
e38e4f23a097 Added tool to update copyright notices in files based on commits
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
   232
e38e4f23a097 Added tool to update copyright notices in files based on commits
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
   233
    "Created: / 24-04-2018 / 15:37:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
910
d347b4bedf2b Introduce `HGMergeTool` - a merge tool for Smalltalk/X source files
Jan Vrany <jan.vrany@labware.com>
parents: 817
diff changeset
   234
!
d347b4bedf2b Introduce `HGMergeTool` - a merge tool for Smalltalk/X source files
Jan Vrany <jan.vrany@labware.com>
parents: 817
diff changeset
   235
d347b4bedf2b Introduce `HGMergeTool` - a merge tool for Smalltalk/X source files
Jan Vrany <jan.vrany@labware.com>
parents: 817
diff changeset
   236
suffix
d347b4bedf2b Introduce `HGMergeTool` - a merge tool for Smalltalk/X source files
Jan Vrany <jan.vrany@labware.com>
parents: 817
diff changeset
   237
    | dot |
d347b4bedf2b Introduce `HGMergeTool` - a merge tool for Smalltalk/X source files
Jan Vrany <jan.vrany@labware.com>
parents: 817
diff changeset
   238
d347b4bedf2b Introduce `HGMergeTool` - a merge tool for Smalltalk/X source files
Jan Vrany <jan.vrany@labware.com>
parents: 817
diff changeset
   239
    dot := name lastIndexOf:$..
d347b4bedf2b Introduce `HGMergeTool` - a merge tool for Smalltalk/X source files
Jan Vrany <jan.vrany@labware.com>
parents: 817
diff changeset
   240
    dot ~~ 0 ifTrue: [
d347b4bedf2b Introduce `HGMergeTool` - a merge tool for Smalltalk/X source files
Jan Vrany <jan.vrany@labware.com>
parents: 817
diff changeset
   241
        ^ name copyFrom: dot + 1
d347b4bedf2b Introduce `HGMergeTool` - a merge tool for Smalltalk/X source files
Jan Vrany <jan.vrany@labware.com>
parents: 817
diff changeset
   242
    ] ifFalse: [
d347b4bedf2b Introduce `HGMergeTool` - a merge tool for Smalltalk/X source files
Jan Vrany <jan.vrany@labware.com>
parents: 817
diff changeset
   243
        ^ ''
d347b4bedf2b Introduce `HGMergeTool` - a merge tool for Smalltalk/X source files
Jan Vrany <jan.vrany@labware.com>
parents: 817
diff changeset
   244
    ].
d347b4bedf2b Introduce `HGMergeTool` - a merge tool for Smalltalk/X source files
Jan Vrany <jan.vrany@labware.com>
parents: 817
diff changeset
   245
d347b4bedf2b Introduce `HGMergeTool` - a merge tool for Smalltalk/X source files
Jan Vrany <jan.vrany@labware.com>
parents: 817
diff changeset
   246
    "
d347b4bedf2b Introduce `HGMergeTool` - a merge tool for Smalltalk/X source files
Jan Vrany <jan.vrany@labware.com>
parents: 817
diff changeset
   247
    'a.txt.gz' asFilename suffix
d347b4bedf2b Introduce `HGMergeTool` - a merge tool for Smalltalk/X source files
Jan Vrany <jan.vrany@labware.com>
parents: 817
diff changeset
   248
    'a' asFilename suffix
d347b4bedf2b Introduce `HGMergeTool` - a merge tool for Smalltalk/X source files
Jan Vrany <jan.vrany@labware.com>
parents: 817
diff changeset
   249
    "
d347b4bedf2b Introduce `HGMergeTool` - a merge tool for Smalltalk/X source files
Jan Vrany <jan.vrany@labware.com>
parents: 817
diff changeset
   250
d347b4bedf2b Introduce `HGMergeTool` - a merge tool for Smalltalk/X source files
Jan Vrany <jan.vrany@labware.com>
parents: 817
diff changeset
   251
    "Created: / 27-08-2020 / 15:27:33 / Jan Vrany <jan.vrany@labware.com>"
d347b4bedf2b Introduce `HGMergeTool` - a merge tool for Smalltalk/X source files
Jan Vrany <jan.vrany@labware.com>
parents: 817
diff changeset
   252
!
d347b4bedf2b Introduce `HGMergeTool` - a merge tool for Smalltalk/X source files
Jan Vrany <jan.vrany@labware.com>
parents: 817
diff changeset
   253
d347b4bedf2b Introduce `HGMergeTool` - a merge tool for Smalltalk/X source files
Jan Vrany <jan.vrany@labware.com>
parents: 817
diff changeset
   254
withoutSuffix
d347b4bedf2b Introduce `HGMergeTool` - a merge tool for Smalltalk/X source files
Jan Vrany <jan.vrany@labware.com>
parents: 817
diff changeset
   255
    ^ (changeset repository path / self pathName) withoutSuffix
d347b4bedf2b Introduce `HGMergeTool` - a merge tool for Smalltalk/X source files
Jan Vrany <jan.vrany@labware.com>
parents: 817
diff changeset
   256
d347b4bedf2b Introduce `HGMergeTool` - a merge tool for Smalltalk/X source files
Jan Vrany <jan.vrany@labware.com>
parents: 817
diff changeset
   257
    "Created: / 27-08-2020 / 15:30:18 / Jan Vrany <jan.vrany@labware.com>"
71
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   258
! !
69
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   259
121
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   260
!HGChangesetFile methodsFor:'accessing-private'!
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   261
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   262
childNamed: aString
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   263
    "Returns a child name aString. If no such child
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   264
     exist, raise an error."
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   265
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   266
    aString = '.' ifTrue:[ ^ self ].
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   267
    aString = '..' ifTrue:[ ^ parent ].
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   268
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   269
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   270
    children notNil ifTrue:[
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   271
        children at: aString ifPresent:[:child|^child].
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   272
    ].
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   273
    HGError newException
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   274
        parameter: (Array with: self with: aString );
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   275
        messageText: 'No such file or directory';
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   276
        raiseSignal.
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   277
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   278
    "Created: / 01-12-2012 / 01:29:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   279
! !
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   280
910
d347b4bedf2b Introduce `HGMergeTool` - a merge tool for Smalltalk/X source files
Jan Vrany <jan.vrany@labware.com>
parents: 817
diff changeset
   281
!HGChangesetFile methodsFor:'converting'!
d347b4bedf2b Introduce `HGMergeTool` - a merge tool for Smalltalk/X source files
Jan Vrany <jan.vrany@labware.com>
parents: 817
diff changeset
   282
d347b4bedf2b Introduce `HGMergeTool` - a merge tool for Smalltalk/X source files
Jan Vrany <jan.vrany@labware.com>
parents: 817
diff changeset
   283
asFilename
d347b4bedf2b Introduce `HGMergeTool` - a merge tool for Smalltalk/X source files
Jan Vrany <jan.vrany@labware.com>
parents: 817
diff changeset
   284
    ^ self
d347b4bedf2b Introduce `HGMergeTool` - a merge tool for Smalltalk/X source files
Jan Vrany <jan.vrany@labware.com>
parents: 817
diff changeset
   285
d347b4bedf2b Introduce `HGMergeTool` - a merge tool for Smalltalk/X source files
Jan Vrany <jan.vrany@labware.com>
parents: 817
diff changeset
   286
    "Created: / 27-08-2020 / 15:11:48 / Jan Vrany <jan.vrany@labware.com>"
d347b4bedf2b Introduce `HGMergeTool` - a merge tool for Smalltalk/X source files
Jan Vrany <jan.vrany@labware.com>
parents: 817
diff changeset
   287
! !
d347b4bedf2b Introduce `HGMergeTool` - a merge tool for Smalltalk/X source files
Jan Vrany <jan.vrany@labware.com>
parents: 817
diff changeset
   288
817
e38e4f23a097 Added tool to update copyright notices in files based on commits
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
   289
!HGChangesetFile methodsFor:'enumerating'!
e38e4f23a097 Added tool to update copyright notices in files based on commits
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
   290
e38e4f23a097 Added tool to update copyright notices in files based on commits
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
   291
recursiveDirectoryContentsDo:aBlock 
e38e4f23a097 Added tool to update copyright notices in files based on commits
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
   292
    "Evaluates `aBlock` for itself and all children recursivelly,
e38e4f23a097 Added tool to update copyright notices in files based on commits
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
   293
     passing the child to the block."
e38e4f23a097 Added tool to update copyright notices in files based on commits
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
   294
e38e4f23a097 Added tool to update copyright notices in files based on commits
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
   295
    children notEmptyOrNil ifTrue:[ 
e38e4f23a097 Added tool to update copyright notices in files based on commits
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
   296
        children do:[:each | 
e38e4f23a097 Added tool to update copyright notices in files based on commits
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
   297
            aBlock value: each.    
e38e4f23a097 Added tool to update copyright notices in files based on commits
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
   298
            each recursiveDirectoryContentsDo:aBlock.
e38e4f23a097 Added tool to update copyright notices in files based on commits
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
   299
        ]
e38e4f23a097 Added tool to update copyright notices in files based on commits
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
   300
    ].
e38e4f23a097 Added tool to update copyright notices in files based on commits
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
   301
e38e4f23a097 Added tool to update copyright notices in files based on commits
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
   302
    "Created: / 13-04-2018 / 22:46:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e38e4f23a097 Added tool to update copyright notices in files based on commits
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
   303
    "Modified: / 23-04-2018 / 22:38:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e38e4f23a097 Added tool to update copyright notices in files based on commits
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
   304
! !
e38e4f23a097 Added tool to update copyright notices in files based on commits
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 509
diff changeset
   305
71
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   306
!HGChangesetFile methodsFor:'initialization'!
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   307
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   308
setChangeset: anHGChangeset name: aString
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   309
    ^self setChangeset: anHGChangeset name: aString parent: nil.
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   310
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   311
    "Created: / 16-11-2012 / 23:33:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   312
!
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   313
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   314
setChangeset: anHGChangeset name: aString parent: anHGChangesetFile
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   315
    changeset := anHGChangeset.
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   316
    name := aString.
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   317
    parent := anHGChangesetFile
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   318
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   319
    "Created: / 16-11-2012 / 23:50:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   320
! !
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   321
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   322
!HGChangesetFile methodsFor:'instance creation-private'!
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   323
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   324
create0: aString
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   325
    | file |
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   326
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   327
    aString isEmpty ifTrue:[ ^ self ].    
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   328
    children isNil ifTrue:[
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   329
        children := Dictionary new
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   330
    ] ifFalse:[
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   331
        children at: aString ifPresent:[:child|^child].
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   332
    ].
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   333
    file := self class new setChangeset: changeset name: aString parent: self.
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   334
    children at: aString put: file.
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   335
    ^file
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   336
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   337
    "Created: / 16-11-2012 / 23:41:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   338
!
69
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   339
71
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   340
create: aString
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   341
    | file |
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   342
    (aString includes: $/) ifTrue:[
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   343
        file := self.
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   344
        (aString tokensBasedOn: $/) do:[:each|
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   345
            file := file create0: each.            
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   346
        ]
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   347
    ] ifFalse:[
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   348
        file := self create0: aString
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   349
    ].
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   350
    ^file.
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   351
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   352
    "Created: / 16-11-2012 / 23:41:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   353
! !
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   354
126
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 121
diff changeset
   355
!HGChangesetFile methodsFor:'operations'!
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 121
diff changeset
   356
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 121
diff changeset
   357
copyTo: aStringOrFilename
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 121
diff changeset
   358
    "Writes contents of the receiver to given file"
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 121
diff changeset
   359
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 121
diff changeset
   360
    HGCommand cat
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 121
diff changeset
   361
        workingDirectory: self repository pathName;
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 121
diff changeset
   362
        path: self pathName;
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 121
diff changeset
   363
        revision: changeset id revno;
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 121
diff changeset
   364
        destination: aStringOrFilename;
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 121
diff changeset
   365
        execute.
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 121
diff changeset
   366
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 121
diff changeset
   367
    "Created: / 04-12-2012 / 01:58:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 121
diff changeset
   368
! !
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 121
diff changeset
   369
71
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   370
!HGChangesetFile methodsFor:'printing & storing'!
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   371
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   372
printOn:aStream
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   373
    "append a printed representation if the receiver to the argument, aStream"
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   374
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   375
    aStream nextPutAll:'anHGChangesetFile['.
138
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 126
diff changeset
   376
    changeset id printOn: aStream.
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 126
diff changeset
   377
    aStream space.
71
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   378
    self printPathOn: aStream.
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   379
    aStream nextPut:$].
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   380
138
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 126
diff changeset
   381
    "Modified: / 06-12-2012 / 00:28:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
71
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   382
!
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   383
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   384
printPathOn: aStream
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   385
    parent notNil ifTrue:[
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   386
        parent printPathOn: aStream.
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   387
        parent parent notNil ifTrue:[
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   388
            aStream nextPut:$/.
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   389
        ].
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   390
    ].
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   391
    aStream nextPutAll: name.
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   392
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   393
    "Created: / 16-11-2012 / 23:53:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   394
! !
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   395
190
a4a4b6f2fc52 Performance optimization in HGWorkingCopyFile.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
   396
!HGChangesetFile methodsFor:'private'!
a4a4b6f2fc52 Performance optimization in HGWorkingCopyFile.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
   397
a4a4b6f2fc52 Performance optimization in HGWorkingCopyFile.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
   398
ensureNotLazy
a4a4b6f2fc52 Performance optimization in HGWorkingCopyFile.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
   399
    "Noop, I'm not lazy"
a4a4b6f2fc52 Performance optimization in HGWorkingCopyFile.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
   400
a4a4b6f2fc52 Performance optimization in HGWorkingCopyFile.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
   401
    "Created: / 22-01-2013 / 13:44:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a4a4b6f2fc52 Performance optimization in HGWorkingCopyFile.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
   402
! !
a4a4b6f2fc52 Performance optimization in HGWorkingCopyFile.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
   403
397
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   404
!HGChangesetFile methodsFor:'reading-files'!
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   405
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   406
contents
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   407
    "return the contents of the file as a collection of lines;
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   408
     Raises an error, if the file is unreadable/non-existing.
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   409
     See also #contentsOfEntireFile, which returns a string for textFiles.
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   410
     CAVEAT: bad naming - but req'd for VW compatibility."
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   411
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   412
    ^ self readingFileDo:[:s | s contents].
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   413
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   414
    "
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   415
     'Makefile' asFilename contents
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   416
     'foobar' asFilename contents            
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   417
    "
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   418
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   419
    "Modified: / 2.7.1996 / 12:49:45 / stefan"
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   420
    "Created: / 11.7.1996 / 14:09:11 / cg"
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   421
    "Modified: / 15.10.1998 / 11:41:45 / cg"
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   422
!
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   423
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   424
contentsAsString
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   425
    "to compensate for the bad naming, use this to make things explicit.
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   426
     See also #contents, which returns the lines as stringCollection for textFiles."
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   427
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   428
    ^ self contentsOfEntireFile
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   429
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   430
    "
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   431
     'Makefile' asFilename contentsAsString
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   432
     'foobar' asFilename contentsAsString
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   433
    "
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   434
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   435
    "Modified: / 02-07-1996 / 12:49:45 / stefan"
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   436
    "Created: / 08-11-2007 / 13:29:59 / cg"
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   437
!
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   438
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   439
contentsOfEntireFile
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   440
    "return the contents of the file as a string;
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   441
     Raises an error, if the file is unreadable/non-existing.
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   442
     See also #contents, which returns the lines as stringCollection for textFiles.
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   443
     CAVEAT: bad naming - but req'd for VW compatibility."
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   444
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   445
    ^ self readingFileDo:[:s | s contentsOfEntireFile].
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   446
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   447
    "
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   448
     'Makefile' asFilename contentsOfEntireFile
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   449
     'foobar' asFilename contentsOfEntireFile
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   450
    "
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   451
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   452
    "Modified: / 2.7.1996 / 12:49:45 / stefan"
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   453
    "Modified: / 15.10.1998 / 11:42:05 / cg"
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   454
!
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   455
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   456
readingFileDo:aBlock
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   457
    "create a read-stream on the receiver file, evaluate aBlock, passing that stream as arg,
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   458
     and return the blocks value. 
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   459
     If the file cannot be opened, an exception is raised or
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   460
     (old behavior, will vanish:)the block is evaluated with a nil argument.
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   461
     Ensures that the stream is closed."
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   462
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   463
    |stream result|
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   464
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   465
    stream := self readStream.
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   466
    [
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   467
        result := aBlock value:stream
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   468
    ] ensure:[
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   469
        stream notNil ifTrue:[stream close]
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   470
    ].
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   471
    ^ result
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   472
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   473
    "
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   474
     read the first line from some file:
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   475
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   476
     |rslt|
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   477
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   478
     rslt := 
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   479
        '/etc/passwd' asFilename 
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   480
            readingFileDo:[:s |
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   481
                s nextLine
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   482
            ]. 
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   483
     Transcript showCR:rslt.
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   484
    "
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   485
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   486
    "
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   487
     find all used shells in /etc/passwd and count their usage:
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   488
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   489
     |rslt|
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   490
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   491
     rslt :=
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   492
        '/etc/passwd' asFilename 
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   493
            readingFileDo:
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   494
                [:s |
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   495
                    |shells|
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   496
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   497
                    shells := Bag new.
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   498
                    s linesDo:
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   499
                        [:line |
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   500
                            |parts|
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   501
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   502
                            parts := line asCollectionOfSubstringsSeparatedBy:$:.
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   503
                            shells add:(parts seventh).
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   504
                        ].
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   505
                    shells contents
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   506
                ].           
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   507
     Transcript showCR:rslt.
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   508
    "
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   509
!
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   510
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   511
readingLinesDo:aBlock
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   512
    "create a read-stream on the receiver file,
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   513
     evaluate aBlock for each line read from the stream.
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   514
     If the file cannot be opened, an error is raised.
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   515
     Ensures that the stream is closed."
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   516
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   517
    self readingFileDo:[:stream |
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   518
        stream linesDo:aBlock
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   519
    ].
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   520
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   521
    "
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   522
    '/etc/passwd' asFilename 
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   523
        readingLinesDo:[:eachLine |
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   524
            Transcript showCR:eachLine.
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   525
        ]. 
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   526
    "
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   527
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   528
    "
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   529
    '/etc/xxxxx' asFilename 
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   530
        readingLinesDo:[:eachLine |
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   531
            Transcript showCR:eachLine.
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   532
        ]. 
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   533
    "
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   534
! !
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   535
71
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   536
!HGChangesetFile methodsFor:'testing'!
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   537
397
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   538
isDirectory
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   539
    ^ children notNil
190
a4a4b6f2fc52 Performance optimization in HGWorkingCopyFile.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
   540
397
579b4fd3e9a9 Implemented support for hiearchy SCMAbstractPackageRevision/HGPackageRevision.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   541
    "Created: / 07-03-2014 / 12:46:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
190
a4a4b6f2fc52 Performance optimization in HGWorkingCopyFile.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
   542
!
a4a4b6f2fc52 Performance optimization in HGWorkingCopyFile.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
   543
71
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   544
isRootDirectory
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   545
    ^parent isNil
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   546
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   547
    "Created: / 16-11-2012 / 23:58:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
69
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   548
! !
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   549
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   550
!HGChangesetFile class methodsFor:'documentation'!
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   551
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   552
version_HG
115
b1ed2d29054b version_HG changed to return string.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 75
diff changeset
   553
b1ed2d29054b version_HG changed to return string.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 75
diff changeset
   554
    ^ '$Changeset: <not expanded> $'
69
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   555
! !
190
a4a4b6f2fc52 Performance optimization in HGWorkingCopyFile.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
   556