mercurial/HGMergeTool.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Tue, 05 Feb 2013 15:24:24 +0100
changeset 219 475366f8ba6f
parent 210 54a73fa50d40
child 235 3d8ef499d7d9
permissions -rw-r--r--
Bugfix: HGCommandParser>>parseCommandMerge: handle correctly clear merges.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
210
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 182
diff changeset
     1
"
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 182
diff changeset
     2
 COPYRIGHT (c) 2012-2013 by Jan Vrany
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 182
diff changeset
     3
              All Rights Reserved
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 182
diff changeset
     4
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 182
diff changeset
     5
 This software is furnished under a license and may be used
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 182
diff changeset
     6
 only in accordance with the terms of that license and with the
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 182
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 182
diff changeset
     8
 be provided or otherwise made available to, or used by, any
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 182
diff changeset
     9
 other person.  No title to or ownership of the software is
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 182
diff changeset
    10
 hereby transferred.
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 182
diff changeset
    11
"
178
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
"{ Package: 'stx:libscm/mercurial' }"
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
Object subclass:#HGMergeTool
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
	instanceVariableNames:'file'
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
	classVariableNames:''
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
	poolDictionaries:''
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
	category:'SCM-Mercurial-StX'
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
!
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
180
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 179
diff changeset
    21
HGMergeTool subclass:#Mercurial
178
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
	instanceVariableNames:''
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
	classVariableNames:''
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
	poolDictionaries:''
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
	privateIn:HGMergeTool
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
!
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
180
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 179
diff changeset
    28
HGMergeTool subclass:#Smalltalk
178
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
	instanceVariableNames:''
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
	classVariableNames:''
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
	poolDictionaries:''
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
	privateIn:HGMergeTool
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
!
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
!HGMergeTool class methodsFor:'documentation'!
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
210
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 182
diff changeset
    37
copyright
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 182
diff changeset
    38
"
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 182
diff changeset
    39
 COPYRIGHT (c) 2012-2013 by Jan Vrany
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 182
diff changeset
    40
              All Rights Reserved
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 182
diff changeset
    41
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 182
diff changeset
    42
 This software is furnished under a license and may be used
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 182
diff changeset
    43
 only in accordance with the terms of that license and with the
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 182
diff changeset
    44
 inclusion of the above copyright notice.   This software may not
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 182
diff changeset
    45
 be provided or otherwise made available to, or used by, any
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 182
diff changeset
    46
 other person.  No title to or ownership of the software is
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 182
diff changeset
    47
 hereby transferred.
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 182
diff changeset
    48
"
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 182
diff changeset
    49
!
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 182
diff changeset
    50
178
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
documentation
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
"
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
    A base abstract class for merge tools.
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
    [author:]
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
        Jan Vrany <jan.vrany@fit.cvut.cz>
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    58
    [instance variables:]
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
    [class variables:]
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
    [see also:]
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
"
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
! !
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
!HGMergeTool class methodsFor:'instance creation'!
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
for: anHGWorkingCopyFile
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
    "
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
    Return a merge tool suitable for given working copy file
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
    "
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
    ^anHGWorkingCopyFile suffix = 'st' ifTrue:[
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
        Smalltalk new setFile: anHGWorkingCopyFile 
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
    ] ifFalse:[
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
        Mercurial new setFile: anHGWorkingCopyFile
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
    ]
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
    "Created: / 14-01-2013 / 21:11:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
! !
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    81
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    82
!HGMergeTool methodsFor:'accessing'!
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
fileBase
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
    "Return path to a file representing base revision"
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
180
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 179
diff changeset
    87
    ^(file pathName , '.base') asFilename
178
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    88
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    89
    "Created: / 14-01-2013 / 21:12:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
180
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 179
diff changeset
    90
    "Modified: / 15-01-2013 / 10:08:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
178
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    91
!
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    92
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    93
fileLocal
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    94
    "Return path to a file representing current revision (the
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    95
     one of current wc revision"
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    96
180
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 179
diff changeset
    97
    ^(file pathName , '.local') asFilename
178
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    98
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    99
    "Created: / 14-01-2013 / 21:13:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
180
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 179
diff changeset
   100
    "Modified: / 15-01-2013 / 10:08:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
178
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   101
!
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   102
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   103
fileOther
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   104
    "Return path to a file representing the revision to merge in"
180
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 179
diff changeset
   105
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 179
diff changeset
   106
    ^(file pathName , '.other') asFilename
178
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   107
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   108
    "Created: / 14-01-2013 / 21:13:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
180
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 179
diff changeset
   109
    "Modified: / 15-01-2013 / 10:08:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
178
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   110
!
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   111
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   112
fileOutput
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   113
    "Return file where to save the merged version"
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   114
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   115
    ^file
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   116
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   117
    "Created: / 14-01-2013 / 21:13:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   118
! !
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   119
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   120
!HGMergeTool methodsFor:'initialization'!
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   121
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   122
setFile: anHGWorkingCopyFile
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   123
    self assert: (anHGWorkingCopyFile isKindOf: HGWorkingCopyFile).
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   124
    file := anHGWorkingCopyFile
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   125
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   126
    "Created: / 14-01-2013 / 18:04:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   127
! !
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   128
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   129
!HGMergeTool methodsFor:'merging'!
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   130
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   131
merge
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   132
    "Runs a merge on file. Return true, if file conflicts had been
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   133
     resolved, false otherwise"
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   134
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   135
    self subclassResponsibility
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   136
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   137
    "Created: / 14-01-2013 / 18:16:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   138
    "Modified: / 14-01-2013 / 20:00:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   139
!
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   140
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   141
premerge                
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   142
    "Tries to merge files automatically. Returns true, if succeeded, false otherwise.
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   143
     In that case, it is necessary to call #merge which may require user interaction. 
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   144
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   145
     Note that calling #merge is always safe.
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   146
     "
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   147
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   148
    ^false
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   149
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   150
    "Created: / 14-01-2013 / 20:04:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   151
    "Modified (comment): / 14-01-2013 / 21:09:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   152
! !
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   153
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   154
!HGMergeTool::Mercurial class methodsFor:'documentation'!
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   155
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   156
documentation
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   157
"
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   158
    A merge tool using mercurials built-in merge tool resulution.
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   159
    Basically, it calls
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   160
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   161
        hg resolve <file>
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   162
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   163
    [author:]
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   164
        Jan Vrany <jan.vrany@fit.cvut.cz>
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   165
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   166
    [instance variables:]
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   167
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   168
    [class variables:]
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   169
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   170
    [see also:]
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   171
        hg help resolve 
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   172
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   173
"
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   174
! !
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   175
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   176
!HGMergeTool::Mercurial methodsFor:'merging'!
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   177
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   178
merge
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   179
    "Runs a merge on file. Return true, if file conflicts had been
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   180
     resolved, false otherwise"
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   181
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   182
    ^HGCommand resolve
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   183
        workingDirectory: file directory pathName;
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   184
        files: (Array with: file baseName);
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   185
        execute
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   186
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   187
    "Modified: / 14-01-2013 / 20:57:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   188
! !
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   189
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   190
!HGMergeTool::Smalltalk class methodsFor:'documentation'!
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   191
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   192
documentation
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   193
"
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   194
    A merge tool for Smalltalk class .st files. It compares and merges
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   195
    changesets.
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   196
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   197
    [author:]
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   198
        Jan Vrany <jan.vrany@fit.cvut.cz>
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   199
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   200
    [instance variables:]
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   201
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   202
    [class variables:]
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   203
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   204
    [see also:]
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   205
        ChangeSetDiff
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   206
        Tools::ChangeSetDiffTool
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   207
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   208
"
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   209
! !
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   210
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   211
!HGMergeTool::Smalltalk methodsFor:'merging'!
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   212
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   213
merge
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   214
    "Runs a merge on file. Return true, if file conflicts had been
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   215
     resolved, false otherwise"
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   216
180
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 179
diff changeset
   217
    | tool |
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 179
diff changeset
   218
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 179
diff changeset
   219
    tool := Tools::ChangeSetDiffTool new.
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 179
diff changeset
   220
    tool
178
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   221
        fileMenuOpenOnDiffInfo: self changesetDiffInfo;
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   222
        openModal.
180
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 179
diff changeset
   223
    ^tool mergeSavedHolder value
178
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   224
180
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 179
diff changeset
   225
    .
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 179
diff changeset
   226
182
e58f54764529 Bugfix in HGMergeTool::Smalltalk>>merge (no diff)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 180
diff changeset
   227
    "Modified: / 17-01-2013 / 21:11:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
178
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   228
!
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   229
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   230
premerge                
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   231
    "Tries to merge files automatically. Returns true, if succeeded, false otherwise.
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   232
     In that case, it is necessary to call #merge which may require user interaction. 
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   233
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   234
     Note that calling #merge is always safe.
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   235
     "
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   236
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   237
    | dinfo merged |
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   238
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   239
    HGCommand resolve
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   240
        workingDirectory: file directory pathName;
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   241
        tool: 'internal:dump';
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   242
        files: (Array with: file baseName);
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   243
        execute.
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   244
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   245
    dinfo := self changesetDiffInfo.
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   246
    dinfo read.
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   247
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   248
    ^dinfo diffset isMerged ifTrue:[
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   249
        merged := dinfo diffset changesetMerged , dinfo same. 
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   250
        merged := merged reject:[:chg|chg isDoIt].
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   251
        merged saveToFile: self fileOutput format: #classSource.
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   252
        true.
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   253
    ] ifFalse:[
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   254
        false
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   255
    ]
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   256
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   257
    "Created: / 14-01-2013 / 21:15:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   258
! !
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   259
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   260
!HGMergeTool::Smalltalk methodsFor:'private'!
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   261
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   262
changesetDiffInfo
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   263
    ^Tools::ChangeSetDiffInfo
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   264
        specA: (Tools::ChangeSetSpec file: self fileLocal pathName)
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   265
        specB: (Tools::ChangeSetSpec file: self fileOther pathName)
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   266
        specBase: (Tools::ChangeSetSpec file: self fileBase pathName)
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   267
        specMerge: (Tools::ChangeSetSpec file: self fileOutput pathName).
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   268
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   269
    "Created: / 14-01-2013 / 21:15:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   270
! !
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   271
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   272
!HGMergeTool class methodsFor:'documentation'!
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   273
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   274
version_HG
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   275
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   276
    ^ '$Changeset: <not expanded> $'
1ed827252fee More work on merging. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   277
! !
210
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 182
diff changeset
   278