mercurial/HGRepository.st
author Claus Gittinger <cg@exept.de>
Wed, 29 Aug 2018 12:46:21 +0200
branchcvs_MAIN
changeset 856 4d897e8ab998
parent 854 84ab037783ba
permissions -rw-r--r--
#REFACTORING by cg class: HGRevisionAnnotation removed: #annotatesClass: #annotatesMethod:
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
854
84ab037783ba #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 614
diff changeset
     1
"{ Encoding: utf8 }"
84ab037783ba #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 614
diff changeset
     2
210
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 209
diff changeset
     3
"
335
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 309
diff changeset
     4
stx:libscm - a new source code management library for Smalltalk/X
509
f92210d4585b Updated copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 405
diff changeset
     5
Copyright (C) 2012-2015 Jan Vrany
335
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 309
diff changeset
     6
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 309
diff changeset
     7
This library is free software; you can redistribute it and/or
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 309
diff changeset
     8
modify it under the terms of the GNU Lesser General Public
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 309
diff changeset
     9
License as published by the Free Software Foundation; either
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 309
diff changeset
    10
version 2.1 of the License. 
210
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 209
diff changeset
    11
335
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 309
diff changeset
    12
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: 309
diff changeset
    13
but WITHOUT ANY WARRANTY; without even the implied warranty of
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 309
diff changeset
    14
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 309
diff changeset
    15
Lesser General Public License for more details.
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 309
diff changeset
    16
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 309
diff changeset
    17
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: 309
diff changeset
    18
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: 309
diff changeset
    19
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: 209
diff changeset
    20
"
34
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    21
"{ Package: 'stx:libscm/mercurial' }"
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    22
540
1db5536d449c class: HGRepository
Claus Gittinger <cg@exept.de>
parents: 509
diff changeset
    23
"{ NameSpace: Smalltalk }"
1db5536d449c class: HGRepository
Claus Gittinger <cg@exept.de>
parents: 509
diff changeset
    24
34
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    25
Object subclass:#HGRepository
403
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
    26
	instanceVariableNames:'uuid path wc changesets branches heads bookmarks bookmark config
405
9906c030ae1d More work on Mercurial revision log browser and revision selection dialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 404
diff changeset
    27
		colors lock server'
235
3d8ef499d7d9 Command server is now used by default.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 234
diff changeset
    28
	classVariableNames:'Cache UseCommandServer'
34
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    29
	poolDictionaries:''
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    30
	category:'SCM-Mercurial-Core'
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    31
!
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    32
40
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
    33
HGRepositoryObject subclass:#Changesets
69
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 57
diff changeset
    34
	instanceVariableNames:'changesets revno2nodeIdMap'
40
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
    35
	classVariableNames:''
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
    36
	poolDictionaries:''
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
    37
	privateIn:HGRepository
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
    38
!
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
    39
210
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 209
diff changeset
    40
!HGRepository class methodsFor:'documentation'!
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 209
diff changeset
    41
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 209
diff changeset
    42
copyright
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 209
diff changeset
    43
"
335
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 309
diff changeset
    44
stx:libscm - a new source code management library for Smalltalk/X
509
f92210d4585b Updated copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 405
diff changeset
    45
Copyright (C) 2012-2015 Jan Vrany
335
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 309
diff changeset
    46
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 309
diff changeset
    47
This library is free software; you can redistribute it and/or
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 309
diff changeset
    48
modify it under the terms of the GNU Lesser General Public
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 309
diff changeset
    49
License as published by the Free Software Foundation; either
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 309
diff changeset
    50
version 2.1 of the License. 
210
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 209
diff changeset
    51
335
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 309
diff changeset
    52
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: 309
diff changeset
    53
but WITHOUT ANY WARRANTY; without even the implied warranty of
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 309
diff changeset
    54
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 309
diff changeset
    55
Lesser General Public License for more details.
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 309
diff changeset
    56
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 309
diff changeset
    57
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: 309
diff changeset
    58
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: 309
diff changeset
    59
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: 209
diff changeset
    60
"
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 209
diff changeset
    61
! !
34
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    62
163
21bc6994087d Experimental HGWorkingCopyBrowser - unfinished!
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
    63
!HGRepository class methodsFor:'initialization'!
21bc6994087d Experimental HGWorkingCopyBrowser - unfinished!
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
    64
203
85d2f90dc053 Performance improvement: cache heads and branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
    65
flush
85d2f90dc053 Performance improvement: cache heads and branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
    66
    "Flush all cached repositories"
85d2f90dc053 Performance improvement: cache heads and branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
    67
85d2f90dc053 Performance improvement: cache heads and branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
    68
    Cache := CacheDictionary new: 8
85d2f90dc053 Performance improvement: cache heads and branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
    69
85d2f90dc053 Performance improvement: cache heads and branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
    70
    "Created: / 25-01-2013 / 18:58:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
85d2f90dc053 Performance improvement: cache heads and branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
    71
!
85d2f90dc053 Performance improvement: cache heads and branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
    72
163
21bc6994087d Experimental HGWorkingCopyBrowser - unfinished!
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
    73
initialize
235
3d8ef499d7d9 Command server is now used by default.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 234
diff changeset
    74
    Cache := CacheDictionary new: 8.
163
21bc6994087d Experimental HGWorkingCopyBrowser - unfinished!
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
    75
540
1db5536d449c class: HGRepository
Claus Gittinger <cg@exept.de>
parents: 509
diff changeset
    76
    "Modified: / 09-03-2013 / 22:21:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1db5536d449c class: HGRepository
Claus Gittinger <cg@exept.de>
parents: 509
diff changeset
    77
!
1db5536d449c class: HGRepository
Claus Gittinger <cg@exept.de>
parents: 509
diff changeset
    78
1db5536d449c class: HGRepository
Claus Gittinger <cg@exept.de>
parents: 509
diff changeset
    79
useCommandServer
1db5536d449c class: HGRepository
Claus Gittinger <cg@exept.de>
parents: 509
diff changeset
    80
    |useCommandServer|
1db5536d449c class: HGRepository
Claus Gittinger <cg@exept.de>
parents: 509
diff changeset
    81
1db5536d449c class: HGRepository
Claus Gittinger <cg@exept.de>
parents: 509
diff changeset
    82
    UseCommandServer isNil ifTrue:[
1db5536d449c class: HGRepository
Claus Gittinger <cg@exept.de>
parents: 509
diff changeset
    83
        useCommandServer := OperatingSystem getEnvironment: 'STX_LIBSCM_MERCURIAL_USE_COMMAND_SERVER'.
1db5536d449c class: HGRepository
Claus Gittinger <cg@exept.de>
parents: 509
diff changeset
    84
        useCommandServer isNil ifTrue:[
1db5536d449c class: HGRepository
Claus Gittinger <cg@exept.de>
parents: 509
diff changeset
    85
            UseCommandServer := false.  
1db5536d449c class: HGRepository
Claus Gittinger <cg@exept.de>
parents: 509
diff changeset
    86
        ] ifFalse:[
1db5536d449c class: HGRepository
Claus Gittinger <cg@exept.de>
parents: 509
diff changeset
    87
            UseCommandServer := (useCommandServer = '1').
1db5536d449c class: HGRepository
Claus Gittinger <cg@exept.de>
parents: 509
diff changeset
    88
        ]
1db5536d449c class: HGRepository
Claus Gittinger <cg@exept.de>
parents: 509
diff changeset
    89
    ].
256
49cce5802570 Introduced HGDebugFlags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 255
diff changeset
    90
49cce5802570 Introduced HGDebugFlags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 255
diff changeset
    91
    "Modified: / 09-03-2013 / 22:21:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
163
21bc6994087d Experimental HGWorkingCopyBrowser - unfinished!
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
    92
! !
21bc6994087d Experimental HGWorkingCopyBrowser - unfinished!
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
    93
46
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 40
diff changeset
    94
!HGRepository class methodsFor:'instance creation'!
34
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    95
371
f271ddd2b5e0 Added 'Clone...' and 'Create...' menu entries to file browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
    96
init: aStringOrFilename
f271ddd2b5e0 Added 'Clone...' and 'Create...' menu entries to file browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
    97
    "Create a new repository in given directory and
f271ddd2b5e0 Added 'Clone...' and 'Create...' menu entries to file browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
    98
     return HGRepository for it"
f271ddd2b5e0 Added 'Clone...' and 'Create...' menu entries to file browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
    99
f271ddd2b5e0 Added 'Clone...' and 'Create...' menu entries to file browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   100
    | dir |
f271ddd2b5e0 Added 'Clone...' and 'Create...' menu entries to file browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   101
f271ddd2b5e0 Added 'Clone...' and 'Create...' menu entries to file browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   102
    dir := aStringOrFilename asFilename.
f271ddd2b5e0 Added 'Clone...' and 'Create...' menu entries to file browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   103
    dir exists ifTrue:[ 
f271ddd2b5e0 Added 'Clone...' and 'Create...' menu entries to file browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   104
        dir isDirectory ifTrue:[ 
f271ddd2b5e0 Added 'Clone...' and 'Create...' menu entries to file browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   105
            dir directoryContents notEmpty ifTrue:[ 
f271ddd2b5e0 Added 'Clone...' and 'Create...' menu entries to file browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   106
                HGRepositoryError raiseErrorString: 'Directory exists but not empty'.  
f271ddd2b5e0 Added 'Clone...' and 'Create...' menu entries to file browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   107
                ^ self.
f271ddd2b5e0 Added 'Clone...' and 'Create...' menu entries to file browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   108
            ].
f271ddd2b5e0 Added 'Clone...' and 'Create...' menu entries to file browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   109
        ] ifFalse:[ 
f271ddd2b5e0 Added 'Clone...' and 'Create...' menu entries to file browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   110
            HGRepositoryError raiseErrorString: 'Given path is not a directory'.
f271ddd2b5e0 Added 'Clone...' and 'Create...' menu entries to file browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   111
            ^ self.
f271ddd2b5e0 Added 'Clone...' and 'Create...' menu entries to file browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   112
        ].
f271ddd2b5e0 Added 'Clone...' and 'Create...' menu entries to file browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   113
    ].
f271ddd2b5e0 Added 'Clone...' and 'Create...' menu entries to file browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   114
    HGCommand init
f271ddd2b5e0 Added 'Clone...' and 'Create...' menu entries to file browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   115
        path: dir;
f271ddd2b5e0 Added 'Clone...' and 'Create...' menu entries to file browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   116
        execute.
f271ddd2b5e0 Added 'Clone...' and 'Create...' menu entries to file browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   117
    ^self on: dir.
f271ddd2b5e0 Added 'Clone...' and 'Create...' menu entries to file browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   118
f271ddd2b5e0 Added 'Clone...' and 'Create...' menu entries to file browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   119
    "Created: / 13-02-2014 / 12:38:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f271ddd2b5e0 Added 'Clone...' and 'Create...' menu entries to file browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   120
!
f271ddd2b5e0 Added 'Clone...' and 'Create...' menu entries to file browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   121
34
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   122
on: aStringOrFilename
167
73ede479a28f Bugfix - do not cache repositories by default.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 165
diff changeset
   123
    ^self on: aStringOrFilename cached: false
73ede479a28f Bugfix - do not cache repositories by default.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 165
diff changeset
   124
73ede479a28f Bugfix - do not cache repositories by default.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 165
diff changeset
   125
    "Created: / 17-10-2012 / 13:30:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
73ede479a28f Bugfix - do not cache repositories by default.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 165
diff changeset
   126
    "Modified: / 16-12-2012 / 12:59:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
73ede479a28f Bugfix - do not cache repositories by default.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 165
diff changeset
   127
!
73ede479a28f Bugfix - do not cache repositories by default.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 165
diff changeset
   128
73ede479a28f Bugfix - do not cache repositories by default.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 165
diff changeset
   129
on: aStringOrFilename cached: cache
163
21bc6994087d Experimental HGWorkingCopyBrowser - unfinished!
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
   130
    | path |
21bc6994087d Experimental HGWorkingCopyBrowser - unfinished!
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
   131
21bc6994087d Experimental HGWorkingCopyBrowser - unfinished!
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
   132
    path := aStringOrFilename asFilename.
167
73ede479a28f Bugfix - do not cache repositories by default.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 165
diff changeset
   133
    ^cache ifTrue:[
73ede479a28f Bugfix - do not cache repositories by default.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 165
diff changeset
   134
        Cache at: path ifAbsentPut:[self new initializeOn: path]
73ede479a28f Bugfix - do not cache repositories by default.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 165
diff changeset
   135
    ] ifFalse:[
73ede479a28f Bugfix - do not cache repositories by default.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 165
diff changeset
   136
        self new initializeOn: path
73ede479a28f Bugfix - do not cache repositories by default.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 165
diff changeset
   137
    ]
34
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   138
167
73ede479a28f Bugfix - do not cache repositories by default.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 165
diff changeset
   139
    "Created: / 16-12-2012 / 12:58:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
34
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   140
! !
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   141
54
66045198bfbc More changes towards self hosting. Some work on model is still missing...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 46
diff changeset
   142
!HGRepository class methodsFor:'cloning'!
66045198bfbc More changes towards self hosting. Some work on model is still missing...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 46
diff changeset
   143
66045198bfbc More changes towards self hosting. Some work on model is still missing...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 46
diff changeset
   144
clone: aFilenameOrUrlOrString to: aStringOrFilename
66045198bfbc More changes towards self hosting. Some work on model is still missing...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 46
diff changeset
   145
    "Clones repository at given URL to given directory.
66045198bfbc More changes towards self hosting. Some work on model is still missing...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 46
diff changeset
   146
     Returns an instance HGRepository representing the clone."
66045198bfbc More changes towards self hosting. Some work on model is still missing...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 46
diff changeset
   147
88
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 69
diff changeset
   148
    ^self clone: aFilenameOrUrlOrString to: aStringOrFilename update: true
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 69
diff changeset
   149
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 69
diff changeset
   150
    "Created: / 14-11-2012 / 22:46:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 69
diff changeset
   151
    "Modified: / 21-11-2012 / 00:20:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 69
diff changeset
   152
!
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 69
diff changeset
   153
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 69
diff changeset
   154
clone: aFilenameOrUrlOrString to: aStringOrFilename update: update
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 69
diff changeset
   155
    "Clones repository at given URL to given directory.
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 69
diff changeset
   156
     Returns an instance HGRepository representing the clone."
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 69
diff changeset
   157
54
66045198bfbc More changes towards self hosting. Some work on model is still missing...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 46
diff changeset
   158
    | url dst dir |
66045198bfbc More changes towards self hosting. Some work on model is still missing...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 46
diff changeset
   159
66045198bfbc More changes towards self hosting. Some work on model is still missing...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 46
diff changeset
   160
    url := aFilenameOrUrlOrString asString.
66045198bfbc More changes towards self hosting. Some work on model is still missing...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 46
diff changeset
   161
    dst := aStringOrFilename asFilename.
66045198bfbc More changes towards self hosting. Some work on model is still missing...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 46
diff changeset
   162
66045198bfbc More changes towards self hosting. Some work on model is still missing...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 46
diff changeset
   163
    dst exists ifTrue:[
66045198bfbc More changes towards self hosting. Some work on model is still missing...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 46
diff changeset
   164
        HGError raiseErrorString: 'Cannot clone to existsing directory!!'.
66045198bfbc More changes towards self hosting. Some work on model is still missing...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 46
diff changeset
   165
        ^nil
66045198bfbc More changes towards self hosting. Some work on model is still missing...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 46
diff changeset
   166
    ].
66045198bfbc More changes towards self hosting. Some work on model is still missing...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 46
diff changeset
   167
    dir := dst directory.
66045198bfbc More changes towards self hosting. Some work on model is still missing...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 46
diff changeset
   168
    dir exists ifFalse:[
66045198bfbc More changes towards self hosting. Some work on model is still missing...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 46
diff changeset
   169
        HGError raiseErrorString: 'Directory for clone does not exist!!'.
66045198bfbc More changes towards self hosting. Some work on model is still missing...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 46
diff changeset
   170
        ^nil
66045198bfbc More changes towards self hosting. Some work on model is still missing...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 46
diff changeset
   171
    ].
66045198bfbc More changes towards self hosting. Some work on model is still missing...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 46
diff changeset
   172
    dir isWritable ifFalse:[
66045198bfbc More changes towards self hosting. Some work on model is still missing...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 46
diff changeset
   173
        HGError raiseErrorString: 'Cannot clone into write-protected directory'.
66045198bfbc More changes towards self hosting. Some work on model is still missing...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 46
diff changeset
   174
        ^nil
66045198bfbc More changes towards self hosting. Some work on model is still missing...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 46
diff changeset
   175
    ].
66045198bfbc More changes towards self hosting. Some work on model is still missing...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 46
diff changeset
   176
66045198bfbc More changes towards self hosting. Some work on model is still missing...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 46
diff changeset
   177
    HGCommand clone
66045198bfbc More changes towards self hosting. Some work on model is still missing...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 46
diff changeset
   178
        url: url;
66045198bfbc More changes towards self hosting. Some work on model is still missing...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 46
diff changeset
   179
        path: dst pathName;
88
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 69
diff changeset
   180
        update: update;
54
66045198bfbc More changes towards self hosting. Some work on model is still missing...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 46
diff changeset
   181
        execute.
371
f271ddd2b5e0 Added 'Clone...' and 'Create...' menu entries to file browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   182
    ^self on: dst.
54
66045198bfbc More changes towards self hosting. Some work on model is still missing...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 46
diff changeset
   183
88
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 69
diff changeset
   184
    "Created: / 21-11-2012 / 00:20:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
371
f271ddd2b5e0 Added 'Clone...' and 'Create...' menu entries to file browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   185
    "Modified: / 13-02-2014 / 12:40:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
54
66045198bfbc More changes towards self hosting. Some work on model is still missing...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 46
diff changeset
   186
! !
66045198bfbc More changes towards self hosting. Some work on model is still missing...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 46
diff changeset
   187
46
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 40
diff changeset
   188
!HGRepository class methodsFor:'utilities'!
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 40
diff changeset
   189
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 40
diff changeset
   190
discover: aStringOrFilename
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 40
diff changeset
   191
    "Find a Mercurial repository in given directory or super-directories
610
9d1a5ee084e7 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 596
diff changeset
   192
     and return it (as an instance of Filename). 
9d1a5ee084e7 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 596
diff changeset
   193
     If no repository is found, returns nil.
46
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 40
diff changeset
   194
610
9d1a5ee084e7 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 596
diff changeset
   195
     Currently, it searches for the presence of .hg directory"
46
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 40
diff changeset
   196
613
19384e1808c7 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 612
diff changeset
   197
    | f parent |
610
9d1a5ee084e7 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 596
diff changeset
   198
    
46
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 40
diff changeset
   199
    f := aStringOrFilename.
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 40
diff changeset
   200
    f isDirectory ifFalse:[
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 40
diff changeset
   201
        f := f directory
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 40
diff changeset
   202
    ].
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 40
diff changeset
   203
    [ ( f / '.hg' ) exists ] whileFalse:[
614
f17a7cd7fd67 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 613
diff changeset
   204
        "/ f pathName errorPrintCR.
613
19384e1808c7 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 612
diff changeset
   205
        f isRootDirectory ifTrue:[^ nil].
19384e1808c7 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 612
diff changeset
   206
        parent := f directory.
614
f17a7cd7fd67 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 613
diff changeset
   207
        "/ workaround: a network/shared folder seems to be not detected
f17a7cd7fd67 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 613
diff changeset
   208
        "/ as a root folder in a VM.
613
19384e1808c7 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 612
diff changeset
   209
        parent pathName = f pathName ifTrue:[^ nil].
19384e1808c7 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 612
diff changeset
   210
        f := parent.
46
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 40
diff changeset
   211
    ].
613
19384e1808c7 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 612
diff changeset
   212
    ^ f
46
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 40
diff changeset
   213
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 40
diff changeset
   214
    "Created: / 13-11-2012 / 22:34:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 40
diff changeset
   215
    "Modified: / 14-11-2012 / 00:02:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
309
8ab1c777abad Bugfix in HGSourceCodeManager>>#isResponsibleForPackage:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 263
diff changeset
   216
!
8ab1c777abad Bugfix in HGSourceCodeManager>>#isResponsibleForPackage:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 263
diff changeset
   217
8ab1c777abad Bugfix in HGSourceCodeManager>>#isResponsibleForPackage:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 263
diff changeset
   218
discoverPackage: packageId
8ab1c777abad Bugfix in HGSourceCodeManager>>#isResponsibleForPackage:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 263
diff changeset
   219
    "Find a Mercurial repository in current package path for given package id.
8ab1c777abad Bugfix in HGSourceCodeManager>>#isResponsibleForPackage:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 263
diff changeset
   220
     and return it (as an instance of Filename). If no repository is found, 
8ab1c777abad Bugfix in HGSourceCodeManager>>#isResponsibleForPackage:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 263
diff changeset
   221
     returns nil."
8ab1c777abad Bugfix in HGSourceCodeManager>>#isResponsibleForPackage:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 263
diff changeset
   222
8ab1c777abad Bugfix in HGSourceCodeManager>>#isResponsibleForPackage:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 263
diff changeset
   223
    | pkg pkgDir i |
8ab1c777abad Bugfix in HGSourceCodeManager>>#isResponsibleForPackage:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 263
diff changeset
   224
8ab1c777abad Bugfix in HGSourceCodeManager>>#isResponsibleForPackage:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 263
diff changeset
   225
    pkg := packageId.
8ab1c777abad Bugfix in HGSourceCodeManager>>#isResponsibleForPackage:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 263
diff changeset
   226
    [ pkg notNil ] whileTrue:[
8ab1c777abad Bugfix in HGSourceCodeManager>>#isResponsibleForPackage:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 263
diff changeset
   227
        pkgDir := Smalltalk getPackageDirectoryForPackage: pkg.
8ab1c777abad Bugfix in HGSourceCodeManager>>#isResponsibleForPackage:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 263
diff changeset
   228
        (pkgDir notNil and:[(HGRepository discover: pkgDir) notNil]) ifTrue:[
8ab1c777abad Bugfix in HGSourceCodeManager>>#isResponsibleForPackage:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 263
diff changeset
   229
            ^self discover: pkgDir
8ab1c777abad Bugfix in HGSourceCodeManager>>#isResponsibleForPackage:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 263
diff changeset
   230
        ].
8ab1c777abad Bugfix in HGSourceCodeManager>>#isResponsibleForPackage:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 263
diff changeset
   231
        i := pkg lastIndexOf: $/.
8ab1c777abad Bugfix in HGSourceCodeManager>>#isResponsibleForPackage:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 263
diff changeset
   232
        i == 0 ifTrue:[ i := pkg lastIndexOf: $: ].
8ab1c777abad Bugfix in HGSourceCodeManager>>#isResponsibleForPackage:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 263
diff changeset
   233
        i > 1 ifTrue:[pkg := pkg copyTo: i - 1] ifFalse:[pkg := nil].
8ab1c777abad Bugfix in HGSourceCodeManager>>#isResponsibleForPackage:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 263
diff changeset
   234
    ].
8ab1c777abad Bugfix in HGSourceCodeManager>>#isResponsibleForPackage:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 263
diff changeset
   235
    ^nil
8ab1c777abad Bugfix in HGSourceCodeManager>>#isResponsibleForPackage:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 263
diff changeset
   236
8ab1c777abad Bugfix in HGSourceCodeManager>>#isResponsibleForPackage:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 263
diff changeset
   237
    "Modified: / 14-11-2012 / 00:02:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8ab1c777abad Bugfix in HGSourceCodeManager>>#isResponsibleForPackage:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 263
diff changeset
   238
    "Created: / 04-07-2013 / 02:15:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
46
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 40
diff changeset
   239
! !
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 40
diff changeset
   240
34
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   241
!HGRepository methodsFor:'accessing'!
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   242
403
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   243
bookmark
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   244
    "Returns currently active bookmark or nil if none is active"
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   245
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   246
    | name |    
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   247
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   248
    bookmark isNil ifTrue:[
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   249
        bookmark := HGCachedFileData
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   250
                        on: ((Filename named: self pathName) / '.hg' / 'bookmarks.current')
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   251
                        reader:[:old :file |
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   252
                            | nm |
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   253
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   254
                            nm := nil.
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   255
                            file exists ifTrue:[ 
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   256
                                file readingFileDo:[:s| nm := s nextLine ].
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   257
                            ].
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   258
                            nm.
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   259
                        ].
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   260
        bookmark setData: nil
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   261
    ].
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   262
    name := bookmark value.
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   263
    name isNil ifTrue:[ ^ nil ].
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   264
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   265
    ^ self bookmarks detect:[:e | e name = name ].
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   266
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   267
    "Created: / 20-03-2014 / 17:31:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   268
!
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   269
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   270
bookmarks
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   271
    "Returns a list of bookmarks in the repository"
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   272
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   273
    bookmarks isNil ifTrue:[
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   274
        bookmarks := HGCachedFileData
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   275
                        on: ((Filename named: self pathName) / '.hg' / 'bookmarks')
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   276
                        reader:[:old :file |
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   277
                            | new newMap obsolete |
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   278
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   279
                            file exists ifTrue:[ 
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   280
                                file readingFileDo:[:s|
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   281
                                    new := (HGCommandParser on: s) parseDotHgBookmarks.
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   282
                                ].
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   283
                            ] ifFalse:[ 
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   284
                                new := #().
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   285
                            ].
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   286
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   287
                            newMap := Dictionary new.
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   288
                            new do:[:eachNew | 
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   289
                                newMap at: eachNew name put: eachNew
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   290
                            ].
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   291
                            obsolete := Set new.
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   292
                            "/ Iterate over existing bookmarks. If new set of bookmarks includes
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   293
                            "/ it, then update changeset and remove from new. If not, add it into
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   294
                            "/ obsolete.
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   295
                            old do:[:eachOld | 
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   296
                                | eachNew |
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   297
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   298
                                eachNew := newMap at: eachOld ifAbsent: nil.
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   299
                                eachNew notNil ifTrue:[ 
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   300
                                    eachOld setChangesetId: eachNew changesetId.
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   301
                                    new remove: eachNew.
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   302
                                ] ifFalse:[ 
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   303
                                    obsolete add: eachOld.
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   304
                                ].
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   305
                            ].
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   306
                            new do:[:b|b setRepository: self].
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   307
                            old removeAll: obsolete.
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   308
                            old addAll: new.
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   309
                            old.
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   310
                        ].
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   311
        bookmarks setData: OrderedCollection new.
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   312
    ].
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   313
    ^bookmarks value
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   314
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   315
    "Created: / 20-03-2014 / 02:13:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   316
!
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   317
105
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   318
branches
106
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   319
    "Returns a list of named branches in the repository,
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   320
     including closed ones"
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   321
203
85d2f90dc053 Performance improvement: cache heads and branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
   322
    branches isNil ifTrue:[
85d2f90dc053 Performance improvement: cache heads and branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
   323
        branches := HGCachedFileData
204
e68551e9cd0c Bugfix in HGRepository>>#branches &#heads - check .hg/store/00changelog.i instead of old .hg/00changelog.i!
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 203
diff changeset
   324
                        on: ((Filename named: self pathName) / '.hg' / 'store' / '00changelog.i')
203
85d2f90dc053 Performance improvement: cache heads and branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
   325
                        reader:[:old |
85d2f90dc053 Performance improvement: cache heads and branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
   326
                            | rbranches current names |
85d2f90dc053 Performance improvement: cache heads and branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
   327
                            rbranches := old.
235
3d8ef499d7d9 Command server is now used by default.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 234
diff changeset
   328
                            current := self execute:
3d8ef499d7d9 Command server is now used by default.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 234
diff changeset
   329
                                        (HGCommand branches
3d8ef499d7d9 Command server is now used by default.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 234
diff changeset
   330
                                            workingDirectory: path pathName;
3d8ef499d7d9 Command server is now used by default.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 234
diff changeset
   331
                                            active: false;
3d8ef499d7d9 Command server is now used by default.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 234
diff changeset
   332
                                            closed: true;
3d8ef499d7d9 Command server is now used by default.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 234
diff changeset
   333
                                            yourself).
203
85d2f90dc053 Performance improvement: cache heads and branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
   334
                            names := rbranches collect:[:b|b name].
237
fc6b21de083e Fix in HGRepository>>#branches when using command server.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 235
diff changeset
   335
                            current := current ? #() reject:[:b|names includes: b name].
203
85d2f90dc053 Performance improvement: cache heads and branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
   336
                            current do:[:b|b setRepository: self].
85d2f90dc053 Performance improvement: cache heads and branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
   337
                            rbranches addAll: current.
85d2f90dc053 Performance improvement: cache heads and branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
   338
                            rbranches isEmpty ifTrue:[
85d2f90dc053 Performance improvement: cache heads and branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
   339
                                rbranches add: (HGBranch new setName: 'default'; setRepository: self).
85d2f90dc053 Performance improvement: cache heads and branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
   340
                            ].
85d2f90dc053 Performance improvement: cache heads and branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
   341
                            rbranches.
85d2f90dc053 Performance improvement: cache heads and branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
   342
                        ].
85d2f90dc053 Performance improvement: cache heads and branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
   343
        branches setData: OrderedCollection new.
176
78124cee58da Bugfix: keep branch of mater working copy even if there are no changesets yet.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 175
diff changeset
   344
    ].
203
85d2f90dc053 Performance improvement: cache heads and branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
   345
    ^branches value
105
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   346
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   347
    "Created: / 27-11-2012 / 19:57:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
237
fc6b21de083e Fix in HGRepository>>#branches when using command server.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 235
diff changeset
   348
    "Modified: / 04-03-2013 / 09:41:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
106
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   349
!
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   350
145
1b8652185a8f Added HGRepository>>config.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   351
config
1b8652185a8f Added HGRepository>>config.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   352
    ^config
1b8652185a8f Added HGRepository>>config.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   353
1b8652185a8f Added HGRepository>>config.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   354
    "Created: / 06-12-2012 / 21:40:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1b8652185a8f Added HGRepository>>config.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   355
!
1b8652185a8f Added HGRepository>>config.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   356
106
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   357
heads
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   358
    "Returns a list of heads (as HGChangeset)"
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   359
203
85d2f90dc053 Performance improvement: cache heads and branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
   360
    heads isNil ifTrue:[
85d2f90dc053 Performance improvement: cache heads and branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
   361
        heads := HGCachedFileData
204
e68551e9cd0c Bugfix in HGRepository>>#branches &#heads - check .hg/store/00changelog.i instead of old .hg/00changelog.i!
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 203
diff changeset
   362
                        on: ((Filename named: self pathName) / '.hg' / 'store' / '00changelog.i')
203
85d2f90dc053 Performance improvement: cache heads and branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
   363
                        reader:[
85d2f90dc053 Performance improvement: cache heads and branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
   364
                            | ids |
106
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   365
235
3d8ef499d7d9 Command server is now used by default.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 234
diff changeset
   366
                            ids := self execute: HGCommand heads.
203
85d2f90dc053 Performance improvement: cache heads and branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
   367
                            ids collect:[:id|self changesetWithId: id].
85d2f90dc053 Performance improvement: cache heads and branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
   368
                        ].                                
85d2f90dc053 Performance improvement: cache heads and branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
   369
    ].
85d2f90dc053 Performance improvement: cache heads and branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 194
diff changeset
   370
    ^heads value.
106
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   371
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   372
    "Created: / 27-11-2012 / 21:33:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
235
3d8ef499d7d9 Command server is now used by default.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 234
diff changeset
   373
    "Modified: / 03-03-2013 / 22:53:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
105
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   374
!
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   375
34
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   376
path
46
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 40
diff changeset
   377
    "Return path to the repository (directory with .hg store)"
34
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   378
    ^ path
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   379
46
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 40
diff changeset
   380
    "Modified (comment): / 13-11-2012 / 18:18:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
36
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   381
!
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   382
69
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 57
diff changeset
   383
pathName
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 57
diff changeset
   384
    "Return path to the repository (directory with .hg store)"
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 57
diff changeset
   385
    ^ path pathName
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 57
diff changeset
   386
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 57
diff changeset
   387
    "Created: / 16-11-2012 / 22:36:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 57
diff changeset
   388
!
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 57
diff changeset
   389
151
527a1e85aef8 Support for 'autopush' in commit dialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 150
diff changeset
   390
remoteDefault
527a1e85aef8 Support for 'autopush' in commit dialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 150
diff changeset
   391
    "Return default remote (upstream) repository or nil if none"
527a1e85aef8 Support for 'autopush' in commit dialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 150
diff changeset
   392
527a1e85aef8 Support for 'autopush' in commit dialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 150
diff changeset
   393
    ^self remotes detect:[:e|e isDefault] ifNone:[nil]
527a1e85aef8 Support for 'autopush' in commit dialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 150
diff changeset
   394
527a1e85aef8 Support for 'autopush' in commit dialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 150
diff changeset
   395
    "Created: / 10-12-2012 / 01:26:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
527a1e85aef8 Support for 'autopush' in commit dialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 150
diff changeset
   396
!
527a1e85aef8 Support for 'autopush' in commit dialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 150
diff changeset
   397
150
1813913f6106 Addec HGRepositoru>>remotes returning list of remote repositories.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
   398
remotes
1813913f6106 Addec HGRepositoru>>remotes returning list of remote repositories.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
   399
    "Returns a collection of configured remote (upstream) repositories"
1813913f6106 Addec HGRepositoru>>remotes returning list of remote repositories.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
   400
1813913f6106 Addec HGRepositoru>>remotes returning list of remote repositories.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
   401
    | paths remotes |
1813913f6106 Addec HGRepositoru>>remotes returning list of remote repositories.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
   402
1813913f6106 Addec HGRepositoru>>remotes returning list of remote repositories.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
   403
    paths := self config get: #paths default: nil.
1813913f6106 Addec HGRepositoru>>remotes returning list of remote repositories.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
   404
    paths isNil ifTrue:[ ^ #() ].
1813913f6106 Addec HGRepositoru>>remotes returning list of remote repositories.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
   405
    paths isEmpty ifTrue:[ ^ #() ].
1813913f6106 Addec HGRepositoru>>remotes returning list of remote repositories.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
   406
    remotes := OrderedCollection new.
1813913f6106 Addec HGRepositoru>>remotes returning list of remote repositories.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
   407
    paths keysAndValuesDo:[:name :url|
1813913f6106 Addec HGRepositoru>>remotes returning list of remote repositories.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
   408
        remotes add: (HGRemote new setRepository: self; setName: name url:url value).
1813913f6106 Addec HGRepositoru>>remotes returning list of remote repositories.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
   409
    ].
1813913f6106 Addec HGRepositoru>>remotes returning list of remote repositories.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
   410
    ^remotes
1813913f6106 Addec HGRepositoru>>remotes returning list of remote repositories.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
   411
1813913f6106 Addec HGRepositoru>>remotes returning list of remote repositories.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
   412
    "Created: / 09-12-2012 / 22:51:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1813913f6106 Addec HGRepositoru>>remotes returning list of remote repositories.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
   413
!
1813913f6106 Addec HGRepositoru>>remotes returning list of remote repositories.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
   414
54
66045198bfbc More changes towards self hosting. Some work on model is still missing...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 46
diff changeset
   415
uuid
66045198bfbc More changes towards self hosting. Some work on model is still missing...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 46
diff changeset
   416
    "Returns unique ID identifing this concrete instance
66045198bfbc More changes towards self hosting. Some work on model is still missing...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 46
diff changeset
   417
     of a repository"
66045198bfbc More changes towards self hosting. Some work on model is still missing...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 46
diff changeset
   418
66045198bfbc More changes towards self hosting. Some work on model is still missing...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 46
diff changeset
   419
    ^ uuid
66045198bfbc More changes towards self hosting. Some work on model is still missing...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 46
diff changeset
   420
66045198bfbc More changes towards self hosting. Some work on model is still missing...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 46
diff changeset
   421
    "Modified (comment): / 14-11-2012 / 23:22:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
66045198bfbc More changes towards self hosting. Some work on model is still missing...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 46
diff changeset
   422
!
66045198bfbc More changes towards self hosting. Some work on model is still missing...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 46
diff changeset
   423
36
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   424
workingCopy
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   425
    wc isNil ifTrue:[
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   426
	wc := HGWorkingCopy new setRepository: self.
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   427
    ].
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   428
    ^wc
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   429
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   430
    "Created: / 19-10-2012 / 15:42:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
34
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   431
! !
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   432
40
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
   433
!HGRepository methodsFor:'accessing-changesets'!
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
   434
69
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 57
diff changeset
   435
@ id
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 57
diff changeset
   436
    ^self changesetWithId: id.
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 57
diff changeset
   437
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 57
diff changeset
   438
    "Created: / 16-11-2012 / 20:29:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 57
diff changeset
   439
!
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 57
diff changeset
   440
40
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
   441
changesetWithId: id
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
   442
    ^changesets changesetWithId: id
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
   443
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
   444
    "Created: / 13-11-2012 / 17:58:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
372
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   445
!
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   446
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   447
changesetsMatching: revset limit: limit
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   448
    "Returns a list of changesets that matches given revset, but not more than
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   449
     `limit` changesets.
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   450
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   451
    revset could be either HGRevset or plain string.
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   452
    limit is an integer or nil for not limit at all (use vit caution
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   453
    on large repositories this may take a while)
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   454
    "
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   455
    ^changesets changesetsMatching: revset limit: limit
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   456
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   457
    "Created: / 07-02-2014 / 13:08:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
40
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
   458
! !
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
   459
105
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   460
!HGRepository methodsFor:'accessing-private'!
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   461
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   462
branchWithName: name 
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   463
    "Returns branch with given name. If there is no such branch,
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   464
     an exception is raised"
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   465
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   466
    ^self branchWithName: name ifAbsent:[
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   467
        HGNoSuchBranchError newException
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   468
            parameter: name;
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   469
            messageText: 'No such branch: ', name;
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   470
            raiseSignal
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   471
    ]
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   472
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   473
    "Created: / 27-11-2012 / 13:55:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   474
!
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   475
152
9068fe7a5795 Support for commiting to a new branch.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   476
branchWithName: name createIfAbsent: create
9068fe7a5795 Support for commiting to a new branch.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   477
9068fe7a5795 Support for commiting to a new branch.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   478
    ^self branchWithName: name ifAbsent:[
9068fe7a5795 Support for commiting to a new branch.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   479
        | b |
9068fe7a5795 Support for commiting to a new branch.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   480
        b := HGBranch new setRepository: self.
9068fe7a5795 Support for commiting to a new branch.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   481
        b setName: name.
212
8ec5884fba41 Fixed bugs introduced on 2013-01-22.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   482
        branches value add: b.
152
9068fe7a5795 Support for commiting to a new branch.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   483
        b
9068fe7a5795 Support for commiting to a new branch.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   484
    ]
9068fe7a5795 Support for commiting to a new branch.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   485
9068fe7a5795 Support for commiting to a new branch.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   486
    "Created: / 10-12-2012 / 03:14:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
212
8ec5884fba41 Fixed bugs introduced on 2013-01-22.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   487
    "Modified: / 01-02-2013 / 13:39:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
152
9068fe7a5795 Support for commiting to a new branch.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   488
!
9068fe7a5795 Support for commiting to a new branch.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   489
105
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   490
branchWithName: name ifAbsent: block
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   491
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   492
    ^self branches detect:[:b|b name = name] ifNone: block
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   493
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   494
    "Created: / 27-11-2012 / 14:31:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
165
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   495
!
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   496
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   497
changesetWithId: id into: cs
193
ad31a280c0d4 Bugfixes in changeset lazy loading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   498
    ^changesets load: id into: cs
165
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   499
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   500
    "Created: / 16-12-2012 / 01:26:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
193
ad31a280c0d4 Bugfixes in changeset lazy loading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   501
    "Modified: / 22-01-2013 / 20:56:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
165
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   502
!
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   503
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   504
lock
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   505
    ^lock
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   506
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   507
    "Created: / 16-12-2012 / 00:39:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
105
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   508
! !
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   509
235
3d8ef499d7d9 Command server is now used by default.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 234
diff changeset
   510
!HGRepository methodsFor:'initialize & release'!
3d8ef499d7d9 Command server is now used by default.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 234
diff changeset
   511
34
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   512
initializeOn: aStringOrFilename
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   513
    | p |
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   514
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   515
    p := aStringOrFilename asFilename.
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   516
    p exists ifFalse:[
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   517
        HGRepositoryError raiseSignal: 'Given path does not exists'.
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   518
        ^nil.
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   519
    ].
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   520
    p isDirectory ifFalse:[
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   521
        HGRepositoryError raiseSignal: 'Given path is not a directory'.
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   522
        ^nil.
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   523
    ].
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   524
    (p / '.hg') isDirectory ifFalse:[
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   525
        HGRepositoryError raiseSignal: 'Given path does not contain a repository (.hg subdir not found - try use #lookup:)'.
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   526
        ^nil.
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   527
    ].
40
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
   528
    path := p.
55
30d72a8f4501 Commit support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 54
diff changeset
   529
    changesets := HGRepository::Changesets new setRepository: self.
145
1b8652185a8f Added HGRepository>>config.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   530
    uuid := UUID new.
1b8652185a8f Added HGRepository>>config.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   531
    config := HGConfig new setRepository: self.
405
9906c030ae1d More work on Mercurial revision log browser and revision selection dialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 404
diff changeset
   532
"/    colors := HGColorLibrary new.
165
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   533
    lock := RecursionLock new.
34
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   534
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   535
    "Created: / 17-10-2012 / 13:35:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
405
9906c030ae1d More work on Mercurial revision log browser and revision selection dialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 404
diff changeset
   536
    "Modified: / 24-03-2014 / 12:42:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
40
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
   537
! !
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
   538
57
47b14a8b7eb8 Some hacks to make basic Mercurial commit working
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 55
diff changeset
   539
!HGRepository methodsFor:'operations'!
47b14a8b7eb8 Some hacks to make basic Mercurial commit working
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 55
diff changeset
   540
47b14a8b7eb8 Some hacks to make basic Mercurial commit working
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 55
diff changeset
   541
cloneTo: aStringOrFilename
47b14a8b7eb8 Some hacks to make basic Mercurial commit working
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 55
diff changeset
   542
    "Creates a clone of the receiver into given directory.
47b14a8b7eb8 Some hacks to make basic Mercurial commit working
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 55
diff changeset
   543
     Returns an instance HGRepository representing the clone."
47b14a8b7eb8 Some hacks to make basic Mercurial commit working
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 55
diff changeset
   544
47b14a8b7eb8 Some hacks to make basic Mercurial commit working
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 55
diff changeset
   545
    ^self class clone: path to: aStringOrFilename
47b14a8b7eb8 Some hacks to make basic Mercurial commit working
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 55
diff changeset
   546
47b14a8b7eb8 Some hacks to make basic Mercurial commit working
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 55
diff changeset
   547
    "Created: / 14-11-2012 / 22:43:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
47b14a8b7eb8 Some hacks to make basic Mercurial commit working
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 55
diff changeset
   548
!
47b14a8b7eb8 Some hacks to make basic Mercurial commit working
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 55
diff changeset
   549
88
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 69
diff changeset
   550
cloneTo: aStringOrFilename update: update
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 69
diff changeset
   551
    "Creates a clone of the receiver into given directory.
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 69
diff changeset
   552
     Returns an instance HGRepository representing the clone.
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 69
diff changeset
   553
     If update is true, repository working copy is updated, otherwise
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 69
diff changeset
   554
     it's left empty"
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 69
diff changeset
   555
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 69
diff changeset
   556
    ^self class clone: path to: aStringOrFilename update: update
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 69
diff changeset
   557
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 69
diff changeset
   558
    "Created: / 21-11-2012 / 00:21:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 69
diff changeset
   559
!
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 69
diff changeset
   560
235
3d8ef499d7d9 Command server is now used by default.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 234
diff changeset
   561
execute: anHGCommand
540
1db5536d449c class: HGRepository
Claus Gittinger <cg@exept.de>
parents: 509
diff changeset
   562
    | value |
1db5536d449c class: HGRepository
Claus Gittinger <cg@exept.de>
parents: 509
diff changeset
   563
240
e04b6e515237 HGCommandServer>>execute: refactored & hopefully fixed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 239
diff changeset
   564
    anHGCommand workingDirectoryOrNil isNil ifTrue:[
e04b6e515237 HGCommandServer>>execute: refactored & hopefully fixed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 239
diff changeset
   565
        anHGCommand workingDirectory: path
e04b6e515237 HGCommandServer>>execute: refactored & hopefully fixed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 239
diff changeset
   566
    ].
e04b6e515237 HGCommandServer>>execute: refactored & hopefully fixed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 239
diff changeset
   567
242
1b09c8551830 Fixes for command server.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 240
diff changeset
   568
    "The command server does not work on Windows because readWait is
1b09c8551830 Fixes for command server.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 240
diff changeset
   569
     broken on Windows!!"
540
1db5536d449c class: HGRepository
Claus Gittinger <cg@exept.de>
parents: 509
diff changeset
   570
    (self class useCommandServer and:[OperatingSystem isMSWINDOWSlike not]) ifTrue:[
235
3d8ef499d7d9 Command server is now used by default.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 234
diff changeset
   571
        server isNil ifTrue:[
3d8ef499d7d9 Command server is now used by default.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 234
diff changeset
   572
            server := HGCommandServer new repository: self.
3d8ef499d7d9 Command server is now used by default.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 234
diff changeset
   573
            server start.
3d8ef499d7d9 Command server is now used by default.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 234
diff changeset
   574
        ].
404
d920ee124ca8 Flush all cached repository data after executing a command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
   575
        value := server execute: anHGCommand
235
3d8ef499d7d9 Command server is now used by default.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 234
diff changeset
   576
    ] ifFalse:[
404
d920ee124ca8 Flush all cached repository data after executing a command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
   577
        value := anHGCommand execute
d920ee124ca8 Flush all cached repository data after executing a command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
   578
    ].
d920ee124ca8 Flush all cached repository data after executing a command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
   579
    "/ Flush caches. Theoretically this is not needed but file modification
d920ee124ca8 Flush all cached repository data after executing a command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
   580
    "/ detection in HGCachedFileData is not accurate. Here we know something
d920ee124ca8 Flush all cached repository data after executing a command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
   581
    "/ changed so better flush caches to avoid false hits.
d920ee124ca8 Flush all cached repository data after executing a command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
   582
    bookmark notNil ifTrue:[ bookmark flush ].
d920ee124ca8 Flush all cached repository data after executing a command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
   583
    bookmarks notNil ifTrue:[ bookmarks flush ].
d920ee124ca8 Flush all cached repository data after executing a command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
   584
    branches notNil ifTrue:[ branches flush ].
d920ee124ca8 Flush all cached repository data after executing a command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
   585
    heads notNil ifTrue:[ heads flush ].
d920ee124ca8 Flush all cached repository data after executing a command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
   586
    ^ value.
235
3d8ef499d7d9 Command server is now used by default.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 234
diff changeset
   587
3d8ef499d7d9 Command server is now used by default.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 234
diff changeset
   588
    "Created: / 03-03-2013 / 22:52:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
404
d920ee124ca8 Flush all cached repository data after executing a command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
   589
    "Modified: / 21-03-2014 / 21:52:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
235
3d8ef499d7d9 Command server is now used by default.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 234
diff changeset
   590
!
3d8ef499d7d9 Command server is now used by default.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 234
diff changeset
   591
372
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   592
log: revset limit: limit
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   593
    "Returns a list of changesets that matches given revset, but not more than
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   594
     `limit` changesets.
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   595
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   596
    revset could be either HGRevset or plain string.
403
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   597
    limit is an integer or nil for not limit at all (use with caution
372
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   598
    on large repositories this may take a while)
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   599
    "
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   600
    ^ self changesetsMatching: revset limit: limit
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   601
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   602
    "Created: / 07-02-2014 / 13:08:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
403
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 398
diff changeset
   603
    "Modified (comment): / 20-03-2014 / 09:02:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
372
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   604
!
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   605
57
47b14a8b7eb8 Some hacks to make basic Mercurial commit working
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 55
diff changeset
   606
pull
47b14a8b7eb8 Some hacks to make basic Mercurial commit working
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 55
diff changeset
   607
    "Pulls changesets from default upstream repository.
47b14a8b7eb8 Some hacks to make basic Mercurial commit working
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 55
diff changeset
   608
     See .hg/hgrc, section path"
47b14a8b7eb8 Some hacks to make basic Mercurial commit working
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 55
diff changeset
   609
215
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 212
diff changeset
   610
    ^self pull: nil
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 212
diff changeset
   611
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 212
diff changeset
   612
    "Created: / 15-11-2012 / 10:00:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 212
diff changeset
   613
    "Modified: / 04-02-2013 / 15:31:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 212
diff changeset
   614
!
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 212
diff changeset
   615
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 212
diff changeset
   616
pull: remote
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 212
diff changeset
   617
    "Push changesets to given remote repository. 'remote' can be either 
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 212
diff changeset
   618
     an instance HGRemote, an instance of URL or a String (remote alias). 
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 212
diff changeset
   619
     If 'remote' nil, default upstream repository is used, ' 
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 212
diff changeset
   620
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 212
diff changeset
   621
    See .hg/hgrc, section for configured aliases"
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 212
diff changeset
   622
235
3d8ef499d7d9 Command server is now used by default.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 234
diff changeset
   623
    ^self execute: 
3d8ef499d7d9 Command server is now used by default.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 234
diff changeset
   624
        (HGCommand pull
3d8ef499d7d9 Command server is now used by default.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 234
diff changeset
   625
            url: (remote ? 'default') asString;
3d8ef499d7d9 Command server is now used by default.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 234
diff changeset
   626
            yourself)
57
47b14a8b7eb8 Some hacks to make basic Mercurial commit working
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 55
diff changeset
   627
215
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 212
diff changeset
   628
    "Created: / 04-02-2013 / 15:30:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
235
3d8ef499d7d9 Command server is now used by default.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 234
diff changeset
   629
    "Modified: / 03-03-2013 / 22:53:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
57
47b14a8b7eb8 Some hacks to make basic Mercurial commit working
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 55
diff changeset
   630
!
47b14a8b7eb8 Some hacks to make basic Mercurial commit working
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 55
diff changeset
   631
47b14a8b7eb8 Some hacks to make basic Mercurial commit working
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 55
diff changeset
   632
push
47b14a8b7eb8 Some hacks to make basic Mercurial commit working
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 55
diff changeset
   633
    "Pushes changesets to default upstream repository.
47b14a8b7eb8 Some hacks to make basic Mercurial commit working
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 55
diff changeset
   634
     See .hg/hgrc, section path"
47b14a8b7eb8 Some hacks to make basic Mercurial commit working
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 55
diff changeset
   635
107
c92f7674485e Fixed test StXTests>>test_commit_03c
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 106
diff changeset
   636
    ^self push: nil force: false
57
47b14a8b7eb8 Some hacks to make basic Mercurial commit working
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 55
diff changeset
   637
47b14a8b7eb8 Some hacks to make basic Mercurial commit working
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 55
diff changeset
   638
    "Created: / 15-11-2012 / 09:59:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
107
c92f7674485e Fixed test StXTests>>test_commit_03c
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 106
diff changeset
   639
    "Modified: / 27-11-2012 / 21:58:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
57
47b14a8b7eb8 Some hacks to make basic Mercurial commit working
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 55
diff changeset
   640
!
47b14a8b7eb8 Some hacks to make basic Mercurial commit working
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 55
diff changeset
   641
206
7985d1be806a Improvement HGRepository>>push:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 204
diff changeset
   642
push: remote
7985d1be806a Improvement HGRepository>>push:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 204
diff changeset
   643
    "Push changesets to given remote repository. 'remote' can be either 
215
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 212
diff changeset
   644
     an instance HGRemote, an instance of URL or a String (remote alias). 
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 212
diff changeset
   645
     If 'remote' nil, default upstream repository is used, ' 
107
c92f7674485e Fixed test StXTests>>test_commit_03c
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 106
diff changeset
   646
c92f7674485e Fixed test StXTests>>test_commit_03c
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 106
diff changeset
   647
    See .hg/hgrc, section for configured aliases"
c92f7674485e Fixed test StXTests>>test_commit_03c
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 106
diff changeset
   648
206
7985d1be806a Improvement HGRepository>>push:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 204
diff changeset
   649
    ^self push: remote force: false
107
c92f7674485e Fixed test StXTests>>test_commit_03c
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 106
diff changeset
   650
c92f7674485e Fixed test StXTests>>test_commit_03c
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 106
diff changeset
   651
    "Created: / 15-11-2012 / 10:00:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c92f7674485e Fixed test StXTests>>test_commit_03c
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 106
diff changeset
   652
    "Modified: / 27-11-2012 / 21:59:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
215
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 212
diff changeset
   653
    "Modified (comment): / 04-02-2013 / 15:31:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
107
c92f7674485e Fixed test StXTests>>test_commit_03c
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 106
diff changeset
   654
!
57
47b14a8b7eb8 Some hacks to make basic Mercurial commit working
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 55
diff changeset
   655
206
7985d1be806a Improvement HGRepository>>push:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 204
diff changeset
   656
push: remote force: force
7985d1be806a Improvement HGRepository>>push:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 204
diff changeset
   657
    "Push changesets to given remote repository. 'remote' can be either 
7985d1be806a Improvement HGRepository>>push:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 204
diff changeset
   658
     an instance HGRemote, an instance of URL or a String (remote alias)'  
7985d1be806a Improvement HGRepository>>push:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 204
diff changeset
   659
     If force is true, push is forced (allowing creation
107
c92f7674485e Fixed test StXTests>>test_commit_03c
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 106
diff changeset
   660
     of new heads in remote repo),
c92f7674485e Fixed test StXTests>>test_commit_03c
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 106
diff changeset
   661
c92f7674485e Fixed test StXTests>>test_commit_03c
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 106
diff changeset
   662
     See .hg/hgrc, section path"
c92f7674485e Fixed test StXTests>>test_commit_03c
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 106
diff changeset
   663
235
3d8ef499d7d9 Command server is now used by default.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 234
diff changeset
   664
    ^self execute:
3d8ef499d7d9 Command server is now used by default.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 234
diff changeset
   665
        (HGCommand push
3d8ef499d7d9 Command server is now used by default.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 234
diff changeset
   666
            workingDirectory: path pathName;
3d8ef499d7d9 Command server is now used by default.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 234
diff changeset
   667
            url: (remote ? 'default') asString;
3d8ef499d7d9 Command server is now used by default.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 234
diff changeset
   668
            force: force;
3d8ef499d7d9 Command server is now used by default.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 234
diff changeset
   669
            yourself)
57
47b14a8b7eb8 Some hacks to make basic Mercurial commit working
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 55
diff changeset
   670
107
c92f7674485e Fixed test StXTests>>test_commit_03c
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 106
diff changeset
   671
    "Created: / 27-11-2012 / 21:58:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
235
3d8ef499d7d9 Command server is now used by default.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 234
diff changeset
   672
    "Modified: / 03-03-2013 / 22:54:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
57
47b14a8b7eb8 Some hacks to make basic Mercurial commit working
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 55
diff changeset
   673
! !
47b14a8b7eb8 Some hacks to make basic Mercurial commit working
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 55
diff changeset
   674
404
d920ee124ca8 Flush all cached repository data after executing a command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
   675
!HGRepository methodsFor:'operations-private'!
d920ee124ca8 Flush all cached repository data after executing a command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
   676
d920ee124ca8 Flush all cached repository data after executing a command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
   677
bookmark: changesetOrChangesetIdOrNil as: name
d920ee124ca8 Flush all cached repository data after executing a command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
   678
    "Sets bookmark named `name` on `changesetOrChangesetIdOrNil` and return it.
d920ee124ca8 Flush all cached repository data after executing a command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
   679
     If `changesetOrChangesetIdOrNil` is nil then bookmark is created on
d920ee124ca8 Flush all cached repository data after executing a command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
   680
     working copy parent and made active.
d920ee124ca8 Flush all cached repository data after executing a command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
   681
d920ee124ca8 Flush all cached repository data after executing a command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
   682
     Raises an HGBookmarkError error if such bookmark already exists."
d920ee124ca8 Flush all cached repository data after executing a command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
   683
d920ee124ca8 Flush all cached repository data after executing a command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
   684
    self bookmarks do:[:each | 
d920ee124ca8 Flush all cached repository data after executing a command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
   685
        each name = name ifTrue:[ 
d920ee124ca8 Flush all cached repository data after executing a command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
   686
            HGBookmarkError newException
d920ee124ca8 Flush all cached repository data after executing a command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
   687
                messageText: ('Bookmark ''%1'' already exists (remove it first and then set it again)' bindWith: name);
d920ee124ca8 Flush all cached repository data after executing a command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
   688
                raise.
d920ee124ca8 Flush all cached repository data after executing a command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
   689
            ^ self.
d920ee124ca8 Flush all cached repository data after executing a command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
   690
        ].
d920ee124ca8 Flush all cached repository data after executing a command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
   691
    ].
d920ee124ca8 Flush all cached repository data after executing a command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
   692
d920ee124ca8 Flush all cached repository data after executing a command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
   693
    self execute:
d920ee124ca8 Flush all cached repository data after executing a command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
   694
        (HGCommand bookmark
d920ee124ca8 Flush all cached repository data after executing a command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
   695
            workingDirectory: path pathName;
d920ee124ca8 Flush all cached repository data after executing a command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
   696
            revision: (changesetOrChangesetIdOrNil notNil ifTrue:[changesetOrChangesetIdOrNil asHGChangesetId] ifFalse:[ nil ]);
d920ee124ca8 Flush all cached repository data after executing a command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
   697
            name: name;
d920ee124ca8 Flush all cached repository data after executing a command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
   698
            yourself).
d920ee124ca8 Flush all cached repository data after executing a command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
   699
d920ee124ca8 Flush all cached repository data after executing a command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
   700
    "Created: / 20-03-2014 / 09:21:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d920ee124ca8 Flush all cached repository data after executing a command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
   701
    "Modified: / 21-03-2014 / 21:52:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d920ee124ca8 Flush all cached repository data after executing a command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
   702
!
d920ee124ca8 Flush all cached repository data after executing a command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
   703
d920ee124ca8 Flush all cached repository data after executing a command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
   704
bookmarkDelete: anHGBookmark
d920ee124ca8 Flush all cached repository data after executing a command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
   705
    self execute:
d920ee124ca8 Flush all cached repository data after executing a command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
   706
        (HGCommand bookmark_delete
d920ee124ca8 Flush all cached repository data after executing a command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
   707
            workingDirectory: self pathName;
d920ee124ca8 Flush all cached repository data after executing a command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
   708
            name: anHGBookmark name;
d920ee124ca8 Flush all cached repository data after executing a command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
   709
            yourself).
d920ee124ca8 Flush all cached repository data after executing a command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
   710
d920ee124ca8 Flush all cached repository data after executing a command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
   711
    "Created: / 21-03-2014 / 01:24:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d920ee124ca8 Flush all cached repository data after executing a command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
   712
    "Modified: / 21-03-2014 / 21:52:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d920ee124ca8 Flush all cached repository data after executing a command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
   713
! !
d920ee124ca8 Flush all cached repository data after executing a command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
   714
165
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   715
!HGRepository methodsFor:'synchronized evaluation'!
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   716
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   717
synchronizationSemaphore
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   718
    ^lock
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   719
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   720
    "Created: / 16-12-2012 / 00:40:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   721
!
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   722
854
84ab037783ba #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 614
diff changeset
   723
synchronizationSemaphore:aRecursionLock
165
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   724
    lock := aRecursionLock
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   725
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   726
    "Created: / 16-12-2012 / 00:40:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
854
84ab037783ba #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 614
diff changeset
   727
    "Modified (format): / 01-08-2018 / 13:23:36 / Claus Gittinger"
165
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   728
! !
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   729
40
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
   730
!HGRepository::Changesets class methodsFor:'documentation'!
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
   731
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
   732
documentation
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
   733
"
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
   734
    A simple object to maintain and load changesets metadata lazily.
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
   735
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
   736
    [author:]
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
   737
        Jan Vrany <jan.vrany@fit.cvut.cz>
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
   738
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
   739
    [instance variables:]
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
   740
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
   741
    [class variables:]
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
   742
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
   743
    [see also:]
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
   744
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
   745
"
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
   746
! !
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
   747
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
   748
!HGRepository::Changesets class methodsFor:'instance creation'!
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
   749
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
   750
new
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
   751
    "return an initialized instance"
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
   752
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
   753
    ^ self basicNew initialize.
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
   754
! !
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
   755
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
   756
!HGRepository::Changesets methodsFor:'accessing'!
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
   757
69
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 57
diff changeset
   758
changesetWithId: idobj
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 57
diff changeset
   759
    | id xid cs |
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 57
diff changeset
   760
247
bf5bfe409ff8 Bugfix for commiting to an empty repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 242
diff changeset
   761
    id := idobj asHGChangesetId.
bf5bfe409ff8 Bugfix for commiting to an empty repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 242
diff changeset
   762
    id = HGChangesetId null ifTrue:[ ^ HGChangeset null].
69
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 57
diff changeset
   763
    "/Try to translate it...
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 57
diff changeset
   764
    id hasRevnoOnly ifTrue:[
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 57
diff changeset
   765
        xid := revno2nodeIdMap at: id revno ifAbsent:[nil].
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 57
diff changeset
   766
    ].
165
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   767
    xid := xid ? id.
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   768
69
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 57
diff changeset
   769
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 57
diff changeset
   770
    "/Look in cache using xlated id...
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 57
diff changeset
   771
    cs := changesets at: xid ifAbsent:[ nil ].
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 57
diff changeset
   772
    cs notNil ifTrue: [ ^ cs ].
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 57
diff changeset
   773
165
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   774
    self synchronized:[
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   775
        "/Look in cache using xlated id...
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   776
        cs := changesets at: xid ifAbsent:[ nil ].
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   777
        cs notNil ifTrue: [ ^ cs ].
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   778
194
3874039d3135 More bugfixes regarding lazy changeset loading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 193
diff changeset
   779
        cs := (xid isFull and:[xid hasRevno]) ifTrue:[
3874039d3135 More bugfixes regarding lazy changeset loading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 193
diff changeset
   780
                    "/Full id, can make it lazy
3874039d3135 More bugfixes regarding lazy changeset loading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 193
diff changeset
   781
                    HGChangeset new setId: xid; setRepository: repository
3874039d3135 More bugfixes regarding lazy changeset loading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 193
diff changeset
   782
                ] ifFalse:[
3874039d3135 More bugfixes regarding lazy changeset loading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 193
diff changeset
   783
                    "/Short id, we have to load it
3874039d3135 More bugfixes regarding lazy changeset loading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 193
diff changeset
   784
                    self load: xid into: nil
3874039d3135 More bugfixes regarding lazy changeset loading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 193
diff changeset
   785
                ].
165
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   786
194
3874039d3135 More bugfixes regarding lazy changeset loading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 193
diff changeset
   787
        self assert: cs id isFull.
3874039d3135 More bugfixes regarding lazy changeset loading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 193
diff changeset
   788
        self assert: cs id hasRevno.
165
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   789
        changesets at: cs id put: cs.
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   790
        revno2nodeIdMap  at: cs id revno put: cs id.
69
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 57
diff changeset
   791
    ].
165
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   792
    ^cs .
40
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
   793
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
   794
    "Created: / 13-11-2012 / 17:52:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
247
bf5bfe409ff8 Bugfix for commiting to an empty repository.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 242
diff changeset
   795
    "Modified (format): / 08-03-2013 / 19:54:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
372
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   796
!
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   797
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   798
changesetsMatching: revset limit: limit
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   799
    | csets |
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   800
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   801
    csets := self repository execute:
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   802
                    (HGCommand log
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   803
                        workingDirectory: repository path asString;
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   804
                        revset: revset;
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   805
                        limit: limit; 
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   806
                        yourself).
405
9906c030ae1d More work on Mercurial revision log browser and revision selection dialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 404
diff changeset
   807
    csets := csets collect:[ :cset |
372
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   808
        | existing |
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   809
398
65dc8645e496 Added HGChangesetList, a pluggable component to display list of changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   810
        cset setRepository: repository.  
372
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   811
        existing := changesets at: cset id ifAbsent:[ nil ].
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   812
        existing isNil ifTrue:[ 
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   813
            cset setRepository: repository .
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   814
            changesets at: cset id put: cset. 
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   815
            revno2nodeIdMap at: cset id revno put: cset id.
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   816
            cset
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   817
        ] ifFalse:[ 
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   818
            existing.
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   819
        ].
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   820
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   821
    ].
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   822
    ^ csets
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   823
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   824
    "Created: / 07-02-2014 / 13:11:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
405
9906c030ae1d More work on Mercurial revision log browser and revision selection dialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 404
diff changeset
   825
    "Modified: / 25-03-2014 / 01:37:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
40
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
   826
! !
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
   827
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
   828
!HGRepository::Changesets methodsFor:'initialization'!
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
   829
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
   830
initialize
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
   831
    "Invoked when a new instance is created."
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
   832
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
   833
    "/ please change as required (and remove this comment)
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
   834
    changesets := Dictionary new.
69
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 57
diff changeset
   835
    revno2nodeIdMap := Dictionary new.
40
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
   836
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
   837
    "/ super initialize.   -- commented since inherited method does nothing
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
   838
69
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 57
diff changeset
   839
    "Modified: / 16-11-2012 / 21:58:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
34
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   840
! !
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   841
165
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   842
!HGRepository::Changesets methodsFor:'private'!
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   843
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   844
load: id into: changesetOrNil
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   845
    "Load all data for changeset with given id.
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   846
     If changesetOrNil is not nil, then update given
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   847
     changeset.
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   848
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   849
     Return changeset with filled data, i.e,, changeset is
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   850
     non-lazy"
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   851
191
f0745f4cdc97 Performance optimization: lazily pre-load all unloaded changes at once.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 176
diff changeset
   852
     | csets cs |
235
3d8ef499d7d9 Command server is now used by default.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 234
diff changeset
   853
     csets := self repository execute:
3d8ef499d7d9 Command server is now used by default.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 234
diff changeset
   854
                    (HGCommand log
3d8ef499d7d9 Command server is now used by default.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 234
diff changeset
   855
                        workingDirectory: repository path asString;
3d8ef499d7d9 Command server is now used by default.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 234
diff changeset
   856
                        revsets: (self loadRevsetsForLoad: id);
3d8ef499d7d9 Command server is now used by default.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 234
diff changeset
   857
                        yourself).
165
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   858
     "/just to be defensive...
191
f0745f4cdc97 Performance optimization: lazily pre-load all unloaded changes at once.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 176
diff changeset
   859
     csets do:[:each| 
f0745f4cdc97 Performance optimization: lazily pre-load all unloaded changes at once.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 176
diff changeset
   860
        | existing |
165
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   861
191
f0745f4cdc97 Performance optimization: lazily pre-load all unloaded changes at once.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 176
diff changeset
   862
        each setRepository: repository.
f0745f4cdc97 Performance optimization: lazily pre-load all unloaded changes at once.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 176
diff changeset
   863
        existing := changesets at: each id ifAbsentPut:[each].
f0745f4cdc97 Performance optimization: lazily pre-load all unloaded changes at once.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 176
diff changeset
   864
        existing ~~ each ifTrue:[
f0745f4cdc97 Performance optimization: lazily pre-load all unloaded changes at once.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 176
diff changeset
   865
            existing setSlotsFrom: each.
209
1ac6a3ac648a Bug fix in changeset lazu loading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 206
diff changeset
   866
            existing setNonLazy.
191
f0745f4cdc97 Performance optimization: lazily pre-load all unloaded changes at once.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 176
diff changeset
   867
            self assert: existing id isShort not.
194
3874039d3135 More bugfixes regarding lazy changeset loading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 193
diff changeset
   868
            self assert: existing id revno notNil.
209
1ac6a3ac648a Bug fix in changeset lazu loading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 206
diff changeset
   869
            self assert: existing loaded.
191
f0745f4cdc97 Performance optimization: lazily pre-load all unloaded changes at once.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 176
diff changeset
   870
        ].
f0745f4cdc97 Performance optimization: lazily pre-load all unloaded changes at once.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 176
diff changeset
   871
        existing id = id ifTrue:[
f0745f4cdc97 Performance optimization: lazily pre-load all unloaded changes at once.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 176
diff changeset
   872
            cs := existing
f0745f4cdc97 Performance optimization: lazily pre-load all unloaded changes at once.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 176
diff changeset
   873
        ].
165
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   874
    ].
194
3874039d3135 More bugfixes regarding lazy changeset loading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 193
diff changeset
   875
    self assert: cs notNil.
191
f0745f4cdc97 Performance optimization: lazily pre-load all unloaded changes at once.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 176
diff changeset
   876
    ^cs
165
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   877
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   878
    "Created: / 16-12-2012 / 00:57:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
235
3d8ef499d7d9 Command server is now used by default.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 234
diff changeset
   879
    "Modified: / 03-03-2013 / 22:58:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
191
f0745f4cdc97 Performance optimization: lazily pre-load all unloaded changes at once.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 176
diff changeset
   880
!
f0745f4cdc97 Performance optimization: lazily pre-load all unloaded changes at once.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 176
diff changeset
   881
f0745f4cdc97 Performance optimization: lazily pre-load all unloaded changes at once.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 176
diff changeset
   882
loadRevsetsForLoad: id
f0745f4cdc97 Performance optimization: lazily pre-load all unloaded changes at once.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 176
diff changeset
   883
    | revsets ids start stop addId |
f0745f4cdc97 Performance optimization: lazily pre-load all unloaded changes at once.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 176
diff changeset
   884
f0745f4cdc97 Performance optimization: lazily pre-load all unloaded changes at once.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 176
diff changeset
   885
    revsets := OrderedCollection new.
f0745f4cdc97 Performance optimization: lazily pre-load all unloaded changes at once.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 176
diff changeset
   886
    ids := changesets keys asOrderedCollection sort: [:a :b|a revno > b revno].
f0745f4cdc97 Performance optimization: lazily pre-load all unloaded changes at once.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 176
diff changeset
   887
    addId := true.
194
3874039d3135 More bugfixes regarding lazy changeset loading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 193
diff changeset
   888
    ids do:[:each| | cs |        
191
f0745f4cdc97 Performance optimization: lazily pre-load all unloaded changes at once.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 176
diff changeset
   889
        cs := changesets at: each.
f0745f4cdc97 Performance optimization: lazily pre-load all unloaded changes at once.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 176
diff changeset
   890
        cs loaded ifFalse:[
f0745f4cdc97 Performance optimization: lazily pre-load all unloaded changes at once.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 176
diff changeset
   891
            start isNil ifTrue:[
194
3874039d3135 More bugfixes regarding lazy changeset loading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 193
diff changeset
   892
                start := stop := each.
3874039d3135 More bugfixes regarding lazy changeset loading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 193
diff changeset
   893
                each = id ifTrue:[
3874039d3135 More bugfixes regarding lazy changeset loading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 193
diff changeset
   894
                    addId := false
3874039d3135 More bugfixes regarding lazy changeset loading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 193
diff changeset
   895
                ].
191
f0745f4cdc97 Performance optimization: lazily pre-load all unloaded changes at once.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 176
diff changeset
   896
            ] ifFalse:[
f0745f4cdc97 Performance optimization: lazily pre-load all unloaded changes at once.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 176
diff changeset
   897
                each revno < (start revno - 20) ifTrue:[
f0745f4cdc97 Performance optimization: lazily pre-load all unloaded changes at once.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 176
diff changeset
   898
                    revsets add: (start revno printString , ':' , (start revno - 20) printString).
259
40dd6ff6db1f Bugfix in: HGRepository::Changesets>>loadRevsetsForLoad:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 256
diff changeset
   899
                    start := stop := each.
191
f0745f4cdc97 Performance optimization: lazily pre-load all unloaded changes at once.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 176
diff changeset
   900
                ] ifFalse:[
194
3874039d3135 More bugfixes regarding lazy changeset loading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 193
diff changeset
   901
                    each = id ifTrue:[
3874039d3135 More bugfixes regarding lazy changeset loading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 193
diff changeset
   902
                        addId := false
3874039d3135 More bugfixes regarding lazy changeset loading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 193
diff changeset
   903
                    ].
3874039d3135 More bugfixes regarding lazy changeset loading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 193
diff changeset
   904
                    stop := each.
191
f0745f4cdc97 Performance optimization: lazily pre-load all unloaded changes at once.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 176
diff changeset
   905
                ].
f0745f4cdc97 Performance optimization: lazily pre-load all unloaded changes at once.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 176
diff changeset
   906
            ]
194
3874039d3135 More bugfixes regarding lazy changeset loading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 193
diff changeset
   907
        ] ifTrue:[
3874039d3135 More bugfixes regarding lazy changeset loading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 193
diff changeset
   908
            start notNil ifTrue:[
3874039d3135 More bugfixes regarding lazy changeset loading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 193
diff changeset
   909
                start ~~ stop ifTrue:[
3874039d3135 More bugfixes regarding lazy changeset loading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 193
diff changeset
   910
                    revsets add: (start revno printString , ':' , stop revno printString).
3874039d3135 More bugfixes regarding lazy changeset loading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 193
diff changeset
   911
                ] ifFalse:[
3874039d3135 More bugfixes regarding lazy changeset loading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 193
diff changeset
   912
                    revsets add: start revno printString
3874039d3135 More bugfixes regarding lazy changeset loading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 193
diff changeset
   913
                ].
3874039d3135 More bugfixes regarding lazy changeset loading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 193
diff changeset
   914
            ].
3874039d3135 More bugfixes regarding lazy changeset loading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 193
diff changeset
   915
            start := stop := nil.
3874039d3135 More bugfixes regarding lazy changeset loading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 193
diff changeset
   916
        ]
3874039d3135 More bugfixes regarding lazy changeset loading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 193
diff changeset
   917
    ].
3874039d3135 More bugfixes regarding lazy changeset loading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 193
diff changeset
   918
    start notNil ifTrue:[
3874039d3135 More bugfixes regarding lazy changeset loading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 193
diff changeset
   919
        start ~~ stop ifTrue:[
3874039d3135 More bugfixes regarding lazy changeset loading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 193
diff changeset
   920
            revsets add: (start revno printString , ':' , stop revno printString).
3874039d3135 More bugfixes regarding lazy changeset loading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 193
diff changeset
   921
        ] ifFalse:[
3874039d3135 More bugfixes regarding lazy changeset loading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 193
diff changeset
   922
            revsets add: start revno printString
191
f0745f4cdc97 Performance optimization: lazily pre-load all unloaded changes at once.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 176
diff changeset
   923
        ].
f0745f4cdc97 Performance optimization: lazily pre-load all unloaded changes at once.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 176
diff changeset
   924
    ].
193
ad31a280c0d4 Bugfixes in changeset lazy loading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
   925
    (addId or:[revsets isEmpty]) ifTrue:[revsets add: id printString].
191
f0745f4cdc97 Performance optimization: lazily pre-load all unloaded changes at once.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 176
diff changeset
   926
    ^revsets
f0745f4cdc97 Performance optimization: lazily pre-load all unloaded changes at once.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 176
diff changeset
   927
f0745f4cdc97 Performance optimization: lazily pre-load all unloaded changes at once.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 176
diff changeset
   928
    "Created: / 22-01-2013 / 16:41:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
259
40dd6ff6db1f Bugfix in: HGRepository::Changesets>>loadRevsetsForLoad:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 256
diff changeset
   929
    "Modified: / 12-03-2013 / 23:59:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
165
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   930
! !
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   931
34
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   932
!HGRepository class methodsFor:'documentation'!
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   933
540
1db5536d449c class: HGRepository
Claus Gittinger <cg@exept.de>
parents: 509
diff changeset
   934
version
596
4a3046467d4e Fix version_CVS
Stefan Vogel <sv@exept.de>
parents: 540
diff changeset
   935
    ^ '$Header$'
540
1db5536d449c class: HGRepository
Claus Gittinger <cg@exept.de>
parents: 509
diff changeset
   936
!
1db5536d449c class: HGRepository
Claus Gittinger <cg@exept.de>
parents: 509
diff changeset
   937
1db5536d449c class: HGRepository
Claus Gittinger <cg@exept.de>
parents: 509
diff changeset
   938
version_CVS
596
4a3046467d4e Fix version_CVS
Stefan Vogel <sv@exept.de>
parents: 540
diff changeset
   939
    ^ '$Header$'
540
1db5536d449c class: HGRepository
Claus Gittinger <cg@exept.de>
parents: 509
diff changeset
   940
!
1db5536d449c class: HGRepository
Claus Gittinger <cg@exept.de>
parents: 509
diff changeset
   941
54
66045198bfbc More changes towards self hosting. Some work on model is still missing...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 46
diff changeset
   942
version_HG
115
b1ed2d29054b version_HG changed to return string.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 107
diff changeset
   943
b1ed2d29054b version_HG changed to return string.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 107
diff changeset
   944
    ^ '$Changeset: <not expanded> $'
54
66045198bfbc More changes towards self hosting. Some work on model is still missing...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 46
diff changeset
   945
!
66045198bfbc More changes towards self hosting. Some work on model is still missing...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 46
diff changeset
   946
34
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   947
version_SVN
596
4a3046467d4e Fix version_CVS
Stefan Vogel <sv@exept.de>
parents: 540
diff changeset
   948
    ^ '$Id$'
34
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   949
! !
163
21bc6994087d Experimental HGWorkingCopyBrowser - unfinished!
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
   950
335
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 309
diff changeset
   951
163
21bc6994087d Experimental HGWorkingCopyBrowser - unfinished!
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 152
diff changeset
   952
HGRepository initialize!