mercurial/HGDebugFlags.st
author Jan Vrany <jan.vrany@labware.com>
Fri, 19 Feb 2021 08:29:41 +0000
changeset 924 4d92f234f671
parent 511 ad2f56473052
child 643 42fcbf623d10
permissions -rw-r--r--
Rework and fix HGSourceCodeManager >> #revisionLogOf:...directory:module:` This commit changes the logic in two ways: 1. #newestRevision is now the newest revision in the branch that *contains* given file (not necesarily modidfes it). If there are multiple heads in that branch, pretty much random one is returned. This changes old behavior and therefore this commit updates tests. 2. If a specific single revision is requested, i.e., both from and to revisions are the same, revision log with that single revision is returned no matter whether it modifies the file or even contains that file at all. This is essentially a workaround to fix issue #305. Moreover, this commit simplifies the code a lot by delegating all the changeset searching and filtering to mercurial using revset expressions. See https://swing.fit.cvut.cz/projects/stx-jv/ticket/305#comment:3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
256
49cce5802570 Introduced HGDebugFlags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"
335
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 256
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: 441
diff changeset
     3
Copyright (C) 2012-2015 Jan Vrany
335
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 256
diff changeset
     4
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 256
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: 256
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: 256
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: 256
diff changeset
     8
version 2.1 of the License. 
256
49cce5802570 Introduced HGDebugFlags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
335
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 256
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: 256
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: 256
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: 256
diff changeset
    13
Lesser General Public License for more details.
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 256
diff changeset
    14
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 256
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: 256
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: 256
diff changeset
    17
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
256
49cce5802570 Introduced HGDebugFlags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
"
49cce5802570 Introduced HGDebugFlags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
"{ Package: 'stx:libscm/mercurial' }"
49cce5802570 Introduced HGDebugFlags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
49cce5802570 Introduced HGDebugFlags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
SharedPool subclass:#HGDebugFlags
49cce5802570 Introduced HGDebugFlags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
	instanceVariableNames:''
49cce5802570 Introduced HGDebugFlags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
	classVariableNames:'Debug Trace'
49cce5802570 Introduced HGDebugFlags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
	poolDictionaries:''
49cce5802570 Introduced HGDebugFlags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
	category:'SCM-Mercurial-Internal'
49cce5802570 Introduced HGDebugFlags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
!
49cce5802570 Introduced HGDebugFlags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
49cce5802570 Introduced HGDebugFlags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
!HGDebugFlags class methodsFor:'documentation'!
49cce5802570 Introduced HGDebugFlags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
49cce5802570 Introduced HGDebugFlags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
copyright
49cce5802570 Introduced HGDebugFlags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
"
335
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 256
diff changeset
    32
stx:libscm - a new source code management library for Smalltalk/X
509
f92210d4585b Updated copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 441
diff changeset
    33
Copyright (C) 2012-2015 Jan Vrany
335
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 256
diff changeset
    34
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 256
diff changeset
    35
This library is free software; you can redistribute it and/or
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 256
diff changeset
    36
modify it under the terms of the GNU Lesser General Public
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 256
diff changeset
    37
License as published by the Free Software Foundation; either
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 256
diff changeset
    38
version 2.1 of the License. 
256
49cce5802570 Introduced HGDebugFlags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
335
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 256
diff changeset
    40
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: 256
diff changeset
    41
but WITHOUT ANY WARRANTY; without even the implied warranty of
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 256
diff changeset
    42
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 256
diff changeset
    43
Lesser General Public License for more details.
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 256
diff changeset
    44
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 256
diff changeset
    45
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: 256
diff changeset
    46
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: 256
diff changeset
    47
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
256
49cce5802570 Introduced HGDebugFlags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
"
49cce5802570 Introduced HGDebugFlags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
! !
49cce5802570 Introduced HGDebugFlags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
368
00c2d0fda82b Minor improvements in debugging support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
    51
!HGDebugFlags class methodsFor:'accessing'!
00c2d0fda82b Minor improvements in debugging support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
    52
00c2d0fda82b Minor improvements in debugging support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
    53
debug
00c2d0fda82b Minor improvements in debugging support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
    54
    ^Debug
00c2d0fda82b Minor improvements in debugging support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
    55
00c2d0fda82b Minor improvements in debugging support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
    56
    "Created: / 08-02-2014 / 11:37:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
00c2d0fda82b Minor improvements in debugging support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
    57
!
00c2d0fda82b Minor improvements in debugging support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
    58
00c2d0fda82b Minor improvements in debugging support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
    59
debug: aBoolean
00c2d0fda82b Minor improvements in debugging support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
    60
    Debug := aBoolean
00c2d0fda82b Minor improvements in debugging support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
    61
495
ff3e296098e5 initial checkin
Claus Gittinger <cg@exept.de>
parents: 368
diff changeset
    62
    "
ff3e296098e5 initial checkin
Claus Gittinger <cg@exept.de>
parents: 368
diff changeset
    63
     self debug:true; trace:true
ff3e296098e5 initial checkin
Claus Gittinger <cg@exept.de>
parents: 368
diff changeset
    64
     self debug:false; trace:false
ff3e296098e5 initial checkin
Claus Gittinger <cg@exept.de>
parents: 368
diff changeset
    65
    "
368
00c2d0fda82b Minor improvements in debugging support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
    66
    "Created: / 08-02-2014 / 11:36:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
00c2d0fda82b Minor improvements in debugging support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
    67
!
256
49cce5802570 Introduced HGDebugFlags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
49cce5802570 Introduced HGDebugFlags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
trace
49cce5802570 Introduced HGDebugFlags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
    ^Trace
49cce5802570 Introduced HGDebugFlags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
49cce5802570 Introduced HGDebugFlags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
    "Created: / 03-03-2013 / 17:20:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
368
00c2d0fda82b Minor improvements in debugging support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
    73
!
00c2d0fda82b Minor improvements in debugging support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
    74
00c2d0fda82b Minor improvements in debugging support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
    75
trace: aBoolean
00c2d0fda82b Minor improvements in debugging support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
    76
    Trace := aBoolean
495
ff3e296098e5 initial checkin
Claus Gittinger <cg@exept.de>
parents: 368
diff changeset
    77
    "
ff3e296098e5 initial checkin
Claus Gittinger <cg@exept.de>
parents: 368
diff changeset
    78
     self debug:true; trace:true
ff3e296098e5 initial checkin
Claus Gittinger <cg@exept.de>
parents: 368
diff changeset
    79
     self debug:false; trace:false
ff3e296098e5 initial checkin
Claus Gittinger <cg@exept.de>
parents: 368
diff changeset
    80
    "
368
00c2d0fda82b Minor improvements in debugging support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
    81
00c2d0fda82b Minor improvements in debugging support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
    82
    "Created: / 08-02-2014 / 11:36:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
256
49cce5802570 Introduced HGDebugFlags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
! !
49cce5802570 Introduced HGDebugFlags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
49cce5802570 Introduced HGDebugFlags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
!HGDebugFlags class methodsFor:'class initialization'!
49cce5802570 Introduced HGDebugFlags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
49cce5802570 Introduced HGDebugFlags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    87
initialize
49cce5802570 Introduced HGDebugFlags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    88
    | debug trace |
49cce5802570 Introduced HGDebugFlags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    89
49cce5802570 Introduced HGDebugFlags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    90
    debug := OperatingSystem getEnvironment:'STX_LIBSCM_MERCURIAL_DEBUG'.
49cce5802570 Introduced HGDebugFlags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    91
    Debug := debug notNil and:[debug ~= '0'].
49cce5802570 Introduced HGDebugFlags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    92
49cce5802570 Introduced HGDebugFlags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    93
    trace := OperatingSystem getEnvironment:'STX_LIBSCM_MERCURIAL_TRACE'.
49cce5802570 Introduced HGDebugFlags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    94
    Trace := trace notNil and:[trace ~= '0'].
49cce5802570 Introduced HGDebugFlags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    95
49cce5802570 Introduced HGDebugFlags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    96
    "
441
032641fb1e6d Fix for command debugging code on Windows.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 368
diff changeset
    97
     Trace := true.
032641fb1e6d Fix for command debugging code on Windows.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 368
diff changeset
    98
     Debug := true.
256
49cce5802570 Introduced HGDebugFlags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    99
     HGDebugFlags initialize
49cce5802570 Introduced HGDebugFlags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   100
    "
49cce5802570 Introduced HGDebugFlags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   101
49cce5802570 Introduced HGDebugFlags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   102
    "Modified: / 09-03-2013 / 22:11:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
49cce5802570 Introduced HGDebugFlags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   103
! !
49cce5802570 Introduced HGDebugFlags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   104
49cce5802570 Introduced HGDebugFlags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   105
!HGDebugFlags class methodsFor:'documentation'!
49cce5802570 Introduced HGDebugFlags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   106
49cce5802570 Introduced HGDebugFlags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   107
version_HG
49cce5802570 Introduced HGDebugFlags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   108
49cce5802570 Introduced HGDebugFlags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   109
    ^ '$Changeset: <not expanded> $'
49cce5802570 Introduced HGDebugFlags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   110
! !
49cce5802570 Introduced HGDebugFlags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   111
49cce5802570 Introduced HGDebugFlags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   112
49cce5802570 Introduced HGDebugFlags.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   113
HGDebugFlags initialize!