mercurial/HGChangesetFile.st
author Patrik Svestka <patrik.svestka@gmail.com>
Mon, 10 Jan 2022 14:21:17 +0100
changeset 938 2bb53758015c
parent 910 d347b4bedf2b
permissions -rw-r--r--
Enable support for Mercurial 6.x
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