src/eric7/Plugins/VcsPlugins/vcsGit/GitWorktreeAddDialog.py

Thu, 15 Dec 2022 17:15:09 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Thu, 15 Dec 2022 17:15:09 +0100
branch
eric7
changeset 9620
9563c83ce83d
child 9653
e67609152c5e
permissions
-rw-r--r--

Version Control Systems - git
- Added a dialog to manage worktrees ( `git worktree` commands).

9620
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
3 # Copyright (c) 2022 Detlev Offenbach <detlev@die-offenbachs.de>
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing a dialog to enter the data for a 'git worktree add' operation.
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 from PyQt6.QtCore import pyqtSlot
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11 from PyQt6.QtWidgets import QDialog, QDialogButtonBox
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13 from eric7.EricWidgets.EricPathPicker import EricPathPickerModes
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15 from .Ui_GitWorktreeAddDialog import Ui_GitWorktreeAddDialog
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 class GitWorktreeAddDialog(QDialog, Ui_GitWorktreeAddDialog):
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19 """
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 Class implementing a dialog to enter the data for a 'git worktree add' operation.
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 """
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 def __init__(self, parentDirectory, tagsList, branchesList, parent=None):
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 """
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 Constructor
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 @param parentDirectory path of the worktrees parent directory
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 @type str
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 @param tagsList list of tags
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 @type list of str
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 @param branchesList list of branches
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 @type list of str
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 @param parent reference to the parent widget (defaults to None)
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 @type QWidget (optional)
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 """
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 super().__init__(parent)
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 self.setupUi(self)
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 self.__parentDirectory = parentDirectory
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 self.worktreePathPicker.setMode(EricPathPickerModes.DIRECTORY_MODE)
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 self.worktreePathPicker.setDefaultDirectory(parentDirectory)
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 self.worktreePathPicker.setText(parentDirectory)
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 self.tagCombo.addItems(sorted(tagsList))
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 self.branchCombo.addItems(["master"] + sorted(branchesList))
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 self.__updateOK()
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 def __updateOK(self):
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 """
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 Private method to set the enabled state of the OK button.
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 """
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 enable = True
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 if self.revButton.isChecked():
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 enable = self.revEdit.text() != ""
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57 elif self.tagButton.isChecked():
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 enable = self.tagCombo.currentText() != ""
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 elif self.branchButton.isChecked():
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 enable = self.branchCombo.currentText() != ""
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 worktreePath = self.worktreePathPicker.text()
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 enable &= bool(worktreePath) and worktreePath not in (
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 self.__parentDirectory,
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 self.__parentDirectory + "/",
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 self.__parentDirectory + "\\",
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67 )
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69 self.buttonBox.button(QDialogButtonBox.StandardButton.Ok).setEnabled(enable)
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71 @pyqtSlot(str)
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72 def on_worktreePathPicker_textChanged(self, worktree):
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 """
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74 Private slot handling a change of the worktree path.
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76 @param worktree entered worktree path
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77 @type str
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78 """
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 self.__updateOK()
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
80
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81 @pyqtSlot(bool)
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82 def on_revButton_toggled(self, checked):
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83 """
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84 Private slot to handle changes of the rev select button.
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86 @param checked state of the button
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87 @type bool
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88 """
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89 self.__updateOK()
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91 @pyqtSlot(str)
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92 def on_revEdit_textChanged(self, txt):
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 """
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
94 Private slot to handle changes of the rev edit.
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96 @param txt text of the edit
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
97 @type str
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
98 """
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99 self.__updateOK()
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
100
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
101 @pyqtSlot(bool)
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
102 def on_tagButton_toggled(self, checked):
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
103 """
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
104 Private slot to handle changes of the Tag select button.
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
105
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
106 @param checked state of the button
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
107 @type bool
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
108 """
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
109 self.__updateOK()
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
110
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
111 @pyqtSlot(str)
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
112 def on_tagCombo_editTextChanged(self, txt):
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
113 """
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
114 Private slot to handle changes of the Tag combo.
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
115
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
116 @param txt text of the combo
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
117 @type str
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
118 """
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
119 self.__updateOK()
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
120
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
121 @pyqtSlot(bool)
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
122 def on_branchButton_toggled(self, checked):
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
123 """
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
124 Private slot to handle changes of the Branch select button.
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
125
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
126 @param checked state of the button
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
127 @type bool
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
128 """
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
129 self.__updateOK()
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
130
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
131 @pyqtSlot(str)
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
132 def on_branchCombo_editTextChanged(self, txt):
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
133 """
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
134 Private slot to handle changes of the Branch combo.
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
135
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
136 @param txt text of the combo
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
137 @type str
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
138 """
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
139 self.__updateOK()
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
140
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
141 def getParameters(self):
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
142 """
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
143 Public method to get the entered parameters for the 'git worktree add'
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
144 operation.
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
145
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
146 @return dictionary containing the entered data. This dictionary has these keys.
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
147 <ul>
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
148 <li>path: path for the new worktree</li>
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
149 <li>branch: name for the worktree branch</li>
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
150 <li>force_branch: enforce creating the branch</li>
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
151 <li>lock: flag indicating to lock the worktree</li>
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
152 <li>lock_reason: optional reason string for the lock</li>
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
153 <li>detach: flag indicating to detach the HEAD in the new worktree</li>
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
154 <li>commit: commit to check out in the new worktree (branch, tag, commit ID
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
155 or empty for HEAD) </li>
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
156 <li>force: flag indicating to enforce the worktree creation</li>
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
157 </ul>
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
158 @rtype dict
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
159 """
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
160 if self.revButton.isChecked():
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
161 commit = self.revEdit.text()
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
162 elif self.tagButton.isChecked():
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
163 commit = self.tagCombo.currentText()
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
164 elif self.branchButton.isChecked():
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
165 commit = self.branchCombo.currentText()
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
166 else:
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
167 commit = ""
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
168
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
169 return {
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
170 "path": self.worktreePathPicker.text(),
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
171 "branch": self.branchNameEdit.text(),
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
172 "force_branch": self.forceBranchCheckBox.isChecked(),
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
173 "lock": self.lockCheckBox.isChecked(),
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
174 "lock_reason": self.lockReasonEdit.text(),
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
175 "detach": self.detachCheckBox.isChecked(),
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
176 "commit": commit,
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
177 "force": self.forceCheckBox.isChecked(),
9563c83ce83d Version Control Systems - git
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
178 }

eric ide

mercurial