git/GitCommand.st
author convert-repo
Sat, 08 Jun 2019 03:28:26 +0000
changeset 873 e7944a5cb335
parent 481 0cfef855baa2
permissions -rw-r--r--
update tags
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
23
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
     1
"{ Package: 'stx:libscm/git' }"
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
     2
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
     3
Object subclass:#GitCommand
24
bce2a03d1070 - GitIndex
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 23
diff changeset
     4
	instanceVariableNames:'workingDirectory'
23
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
     5
	classVariableNames:'GitExecutable'
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
     6
	poolDictionaries:''
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
     7
	category:'SCM-Git-Internal'
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
     8
!
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
     9
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    10
GitCommand subclass:#clone
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    11
	instanceVariableNames:'url path'
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    12
	classVariableNames:''
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    13
	poolDictionaries:''
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    14
	privateIn:GitCommand
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    15
!
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    16
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    17
GitCommand subclass:#push
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    18
	instanceVariableNames:'remote refspec'
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    19
	classVariableNames:''
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    20
	poolDictionaries:''
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    21
	privateIn:GitCommand
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    22
!
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    23
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    24
!GitCommand class methodsFor:'documentation'!
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    25
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    26
documentation
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    27
"
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    28
    A simple wrapper for git command line tool. git command is called
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    29
    in cases there is no native nor libgit2 implementation for given
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    30
    operation (yet).
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    31
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    32
    Individual commands are wrapped in my private classes.
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    33
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    34
    [author:]
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    35
        Jan Vrany <jan.vrany@fit.cvut.cz>
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    36
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    37
    [instance variables:]
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    38
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    39
    [class variables:]
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    40
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    41
    [see also:]
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    42
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    43
"
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    44
! !
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    45
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    46
!GitCommand class methodsFor:'instance creation'!
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    47
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    48
clone
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    49
    ^clone new
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    50
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    51
    "Created: / 01-10-2012 / 00:09:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    52
!
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    53
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    54
new
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    55
    ^ self basicNew initialize.
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    56
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    57
    "Created: / 16-03-2008 / 07:45:22 / janfrog"
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    58
!
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    59
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    60
push
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    61
    ^push new
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    62
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    63
    "Created: / 30-09-2012 / 23:46:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    64
! !
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    65
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    66
!GitCommand class methodsFor:'accessing'!
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    67
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    68
verbose
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    69
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    70
    ^ UserPreferences current svnVerbose
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    71
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    72
    "Created: / 19-03-2008 / 12:29:47 / janfrog"
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    73
    "Modified: / 19-03-2009 / 14:00:50 / Jan Vrany <vranyj1@fel.cvut.cz>"
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    74
    "Modified (format): / 27-12-2011 / 16:00:06 / dundee"
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    75
!
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    76
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    77
verbose:aBoolean
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    78
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    79
    UserPreferences current svnVerbose:aBoolean
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    80
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    81
    "Created: / 19-03-2008 / 12:29:59 / janfrog"
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    82
    "Modified: / 19-03-2009 / 14:00:59 / Jan Vrany <vranyj1@fel.cvut.cz>"
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    83
    "Modified (format): / 27-12-2011 / 16:00:13 / dundee"
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    84
! !
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    85
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    86
!GitCommand class methodsFor:'commands'!
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    87
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    88
clone: url to: stringOfFilename
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    89
    self clone
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    90
        url: url;
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    91
        path: stringOfFilename asFilename asAbsoluteFilename pathName;
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    92
        execute
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    93
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    94
    "Created: / 01-10-2012 / 00:06:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    95
! !
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    96
24
bce2a03d1070 - GitIndex
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 23
diff changeset
    97
!GitCommand methodsFor:'accessing'!
bce2a03d1070 - GitIndex
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 23
diff changeset
    98
bce2a03d1070 - GitIndex
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 23
diff changeset
    99
workingDirectory
bce2a03d1070 - GitIndex
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 23
diff changeset
   100
    ^workingDirectory notNil ifTrue:[
bce2a03d1070 - GitIndex
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 23
diff changeset
   101
        workingDirectory
bce2a03d1070 - GitIndex
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 23
diff changeset
   102
    ] ifFalse: [
bce2a03d1070 - GitIndex
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 23
diff changeset
   103
        Filename currentDirectory pathName
bce2a03d1070 - GitIndex
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 23
diff changeset
   104
    ]
bce2a03d1070 - GitIndex
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 23
diff changeset
   105
bce2a03d1070 - GitIndex
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 23
diff changeset
   106
    "Created: / 11-05-2011 / 08:26:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
bce2a03d1070 - GitIndex
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 23
diff changeset
   107
    "Modified (format): / 27-12-2011 / 15:54:08 / dundee"
bce2a03d1070 - GitIndex
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 23
diff changeset
   108
    "Modified: / 01-10-2012 / 14:38:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
bce2a03d1070 - GitIndex
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 23
diff changeset
   109
!
bce2a03d1070 - GitIndex
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 23
diff changeset
   110
bce2a03d1070 - GitIndex
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 23
diff changeset
   111
workingDirectory:aStringOrFilename
bce2a03d1070 - GitIndex
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 23
diff changeset
   112
    aStringOrFilename asFilename isDirectory ifFalse:[
bce2a03d1070 - GitIndex
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 23
diff changeset
   113
        self error:'Working directory does not exist'.
bce2a03d1070 - GitIndex
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 23
diff changeset
   114
        ^self.
bce2a03d1070 - GitIndex
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 23
diff changeset
   115
    ].    
bce2a03d1070 - GitIndex
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 23
diff changeset
   116
    workingDirectory := aStringOrFilename asString.
bce2a03d1070 - GitIndex
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 23
diff changeset
   117
bce2a03d1070 - GitIndex
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 23
diff changeset
   118
    "Modified: / 01-10-2012 / 14:38:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
bce2a03d1070 - GitIndex
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 23
diff changeset
   119
! !
bce2a03d1070 - GitIndex
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 23
diff changeset
   120
23
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   121
!GitCommand methodsFor:'executing'!
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   122
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   123
execute
24
bce2a03d1070 - GitIndex
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 23
diff changeset
   124
    | pipe output pid environment sema status retval |
23
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   125
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   126
    pipe := NonPositionableExternalStream makePipe.
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   127
    output := pipe first.
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   128
    environment := OperatingSystem getEnvironment copy.
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   129
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   130
    environment at:'LANG' put:'C'.
24
bce2a03d1070 - GitIndex
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 23
diff changeset
   131
    sema := Semaphore new name: 'waiting for git command to finish'.
bce2a03d1070 - GitIndex
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 23
diff changeset
   132
    Processor monitor:[
bce2a03d1070 - GitIndex
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 23
diff changeset
   133
        pid := OperatingSystem exec:(self executable) withArguments:(self arguments)
bce2a03d1070 - GitIndex
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 23
diff changeset
   134
            environment:environment
bce2a03d1070 - GitIndex
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 23
diff changeset
   135
            fileDescriptors:{0 . pipe second fileDescriptor . pipe second fileDescriptor}
bce2a03d1070 - GitIndex
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 23
diff changeset
   136
            fork:true 
bce2a03d1070 - GitIndex
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 23
diff changeset
   137
            newPgrp:false 
bce2a03d1070 - GitIndex
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 23
diff changeset
   138
            inDirectory:self workingDirectory
bce2a03d1070 - GitIndex
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 23
diff changeset
   139
    ] action:[:stat |
bce2a03d1070 - GitIndex
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 23
diff changeset
   140
        status := stat.
bce2a03d1070 - GitIndex
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 23
diff changeset
   141
        sema signal.
bce2a03d1070 - GitIndex
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 23
diff changeset
   142
    ].
bce2a03d1070 - GitIndex
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 23
diff changeset
   143
    
bce2a03d1070 - GitIndex
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 23
diff changeset
   144
23
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   145
    pipe second close.
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   146
    pid isNil ifTrue:[
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   147
        self error:'Cannot execute git command'.
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   148
        output close.
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   149
        ^ self.
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   150
    ].
24
bce2a03d1070 - GitIndex
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 23
diff changeset
   151
    retval := self parse: output.
bce2a03d1070 - GitIndex
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 23
diff changeset
   152
    sema wait.
bce2a03d1070 - GitIndex
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 23
diff changeset
   153
    status success ifFalse:[
bce2a03d1070 - GitIndex
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 23
diff changeset
   154
        GitError raiseErrorString: 'git command failed'.
bce2a03d1070 - GitIndex
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 23
diff changeset
   155
    ].
bce2a03d1070 - GitIndex
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 23
diff changeset
   156
    ^retval
23
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   157
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   158
    "
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   159
        SVNv2::Command info: 'https://swing.fit.cvut.cz/svn/stx/libsvn'
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   160
    "
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   161
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   162
    "Created: / 11-05-2011 / 07:45:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   163
    "Modified: / 17-12-2011 / 19:22:00 / dundee"
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   164
    "Modified (format): / 27-12-2011 / 15:53:54 / dundee"
24
bce2a03d1070 - GitIndex
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 23
diff changeset
   165
    "Modified: / 01-10-2012 / 14:06:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
23
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   166
! !
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   167
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   168
!GitCommand methodsFor:'private'!
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   169
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   170
arguments
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   171
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   172
    ^ OrderedCollection streamContents:[:s |
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   173
        s nextPut:self executable.
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   174
        self argumentsGlobalOn:s.
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   175
        s nextPut:self command.
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   176
        self argumentsCommandOn:s.
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   177
    ].
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   178
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   179
    "Created: / 11-05-2011 / 07:58:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   180
    "Modified (format): / 27-12-2011 / 15:47:23 / dundee"
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   181
!
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   182
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   183
argumentsCommandOn:stream
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   184
    "Called to get command specific options"
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   185
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   186
    self shouldImplement
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   187
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   188
    "Created: / 11-05-2011 / 07:58:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   189
    "Modified (format): / 27-12-2011 / 15:46:59 / dundee"
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   190
!
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   191
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   192
argumentsGlobalOn:arg
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   193
    "Called to get global options"
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   194
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   195
    "Created: / 11-05-2011 / 07:58:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   196
    "Modified (format): / 27-12-2011 / 15:47:10 / dundee"
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   197
    "Modified: / 30-09-2012 / 23:43:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   198
!
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   199
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   200
command
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   201
    "Returns the git 'command' option, i.e. commit,
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   202
     push, pull, ..."
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   203
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   204
    ^self class nameWithoutPrefix
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   205
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   206
    "
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   207
        GitCommand::push basicNew command
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   208
    "
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   209
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   210
    "Created: / 11-05-2011 / 07:58:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   211
    "Modified (format): / 27-12-2011 / 15:47:17 / dundee"
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   212
    "Modified: / 30-09-2012 / 23:37:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   213
!
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   214
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   215
executable
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   216
    | h |
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   217
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   218
    GitExecutable notNil ifTrue:[^ GitExecutable].
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   219
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   220
    OperatingSystem isMSWINDOWSlike ifTrue:[
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   221
"/        h := Win32OperatingSystem registryEntry 
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   222
"/                key:'HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\App Paths\svn.exe'.
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   223
"/        h notNil ifTrue:[GitExecutable := h valueNamed:''].
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   224
"/        GitExecutable notEmptyOrNil ifTrue:[^ GitExecutable]
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   225
        GitExecutable := OperatingSystem pathOfCommand:'git'.
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   226
        ^GitExecutable
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   227
    ].
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   228
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   229
    OperatingSystem isUNIXlike ifTrue:[
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   230
        GitExecutable := OperatingSystem pathOfCommand:'git'.    
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   231
        ^GitExecutable
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   232
    ].
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   233
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   234
    self error:'Git executable not found!!'.
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   235
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   236
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   237
    "
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   238
     GitExecutable := nil.
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   239
     self basicNew executable
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   240
    "
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   241
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   242
    "Created: / 11-05-2011 / 07:59:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   243
    "Modified: / 09-12-2011 / 22:48:33 / dundee"
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   244
    "Modified (format): / 27-12-2011 / 15:51:06 / dundee"
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   245
    "Modified: / 01-10-2012 / 00:10:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   246
!
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   247
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   248
parse: stream
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   249
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   250
    "Parses output of svn 'command' option, i.e. commit,
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   251
     log, update, checkout, etc."
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   252
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   253
    ^ self subclassResponsibility
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   254
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   255
    "Created: / 11-05-2011 / 07:58:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   256
    "Created: / 17-12-2011 / 17:02:41 / dundee"
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   257
! !
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   258
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   259
!GitCommand::clone methodsFor:'accessing'!
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   260
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   261
path
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   262
    ^ path
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   263
!
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   264
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   265
path:something
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   266
    path := something.
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   267
!
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   268
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   269
url
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   270
    ^ url
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   271
!
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   272
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   273
url:something
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   274
    url := something.
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   275
! !
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   276
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   277
!GitCommand::clone methodsFor:'private'!
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   278
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   279
argumentsCommandOn:stream
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   280
    "Called to get command specific options"
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   281
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   282
    stream nextPut: url; nextPut: path
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   283
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   284
    "Created: / 01-10-2012 / 00:04:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   285
!
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   286
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   287
parse:stream
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   288
    "superclass GitCommand says that I am responsible to implement this method"
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   289
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   290
    ^ ''
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   291
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   292
    "Modified: / 01-10-2012 / 00:11:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   293
! !
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   294
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   295
!GitCommand::push methodsFor:'accessing'!
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   296
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   297
refspec
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   298
    ^ refspec
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   299
!
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   300
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   301
refspec:something
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   302
    refspec := something.
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   303
!
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   304
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   305
remote
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   306
    ^ remote
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   307
!
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   308
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   309
remote:something
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   310
    remote := something.
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   311
! !
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   312
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   313
!GitCommand::push methodsFor:'private'!
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   314
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   315
argumentsCommandOn:stream
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   316
    "Called to get command specific options"
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   317
24
bce2a03d1070 - GitIndex
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 23
diff changeset
   318
    stream nextPut: remote.
23
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   319
    refspec notNil ifTrue:[
24
bce2a03d1070 - GitIndex
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 23
diff changeset
   320
        stream nextPut: refspec.
23
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   321
    ]
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   322
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   323
    "Created: / 30-09-2012 / 23:44:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   324
!
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   325
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   326
parse:stream
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   327
    "superclass GitCommand says that I am responsible to implement this method"
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   328
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   329
    ^ ''
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   330
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   331
    "Modified: / 01-10-2012 / 00:11:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   332
! !
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   333
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   334
!GitCommand class methodsFor:'documentation'!
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   335
31
d96d7eff6efc - GitDiffDeltaStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 24
diff changeset
   336
version_GIT
d96d7eff6efc - GitDiffDeltaStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 24
diff changeset
   337
    "Never, ever change this method. Ask JV or CG why"
d96d7eff6efc - GitDiffDeltaStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 24
diff changeset
   338
    ^thisContext method mclass theNonMetaclass instVarNamed: #revision
d96d7eff6efc - GitDiffDeltaStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 24
diff changeset
   339
!
d96d7eff6efc - GitDiffDeltaStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 24
diff changeset
   340
23
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   341
version_SVN
481
0cfef855baa2 Initial import from upstream repository
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 31
diff changeset
   342
    ^ '$Id$'
23
5cbdd3cb7ce4 - GitPrimitives
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   343
! !