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