Merge lp:~wallyworld/bzr4j/track-submit-changes into lp:bzr4j

Proposed by Ian Booth
Status: Needs review
Proposed branch: lp:~wallyworld/bzr4j/track-submit-changes
Merge into: lp:bzr4j
Prerequisite: lp:~frankoid/bzr4j/idea11-fixes
Diff against target: 476 lines (+181/-52)
9 files modified
modules/core/src/main/java/org/emergent/bzr4j/core/cli/BzrAbstractExec.java (+1/-1)
modules/core/src/main/java/org/emergent/bzr4j/core/cli/CmdContext.java (+1/-1)
modules/intellij/src/main/java/org/emergent/bzr4j/intellij/BzrProjectSettings.java (+27/-0)
modules/intellij/src/main/java/org/emergent/bzr4j/intellij/command/BzrMiscCommand.java (+12/-0)
modules/intellij/src/main/java/org/emergent/bzr4j/intellij/provider/BzrChangeProvider.java (+11/-1)
modules/intellij/src/main/java/org/emergent/bzr4j/intellij/ui/BzrConfigurationProjectPanel.form (+47/-5)
modules/intellij/src/main/java/org/emergent/bzr4j/intellij/ui/BzrConfigurationProjectPanel.java (+62/-15)
modules/intellij/src/main/java/org/emergent/bzr4j/intellij/ui/BzrSwitchDialog.java (+19/-29)
modules/intellij/src/main/resources/org/emergent/bzr4j/intellij/BzrVcsMessages.properties (+1/-0)
To merge this branch: bzr merge lp:~wallyworld/bzr4j/track-submit-changes
Reviewer Review Type Date Requested Status
Patrick Woodworth Pending
Review via email: mp+88797@code.launchpad.net

This proposal supersedes a proposal from 2010-10-06.

Description of the change

Enhancement proposal

When tracking changes to my projects, via the Changes tab or the gutter change indicators, I often want to see what the differences are against the submit or ancestor revision, not just the branch tip revision. This allows me to easily see what a merge proposal diff would look like and makes it much easier to track the overall changes for the entire time working on the branch, not just since the last commit. At the moment, as soon as you do a local commit, all the changes are reset and you lose sight of the difference between your work and the trunk. Currently, you can run bzr from the command line for get a text based diff but it's much more convenient to have it all integrated into the IDE.

Implementation

Add new options "Track Changes Against Local|Submit|Ancestor Branch" to the bzr plugin configuration dialog. When selected, the local, submit, or ancestor branch is used as the basis for change tracking. By default, the default change tracking behaviour is to track changes against the local tip.

You can go to the plugin config screen and change the setting, and then you just need to hit refresh on the Changes tab for the chosen tracking method to be used. So it's easy enough to alter the method used as the need arises from within the IDE.

I had to add the use of the "-q" flag to the bzr command invocation since otherwise bzr sadly prints some info text to stderr and this confuses the command error detection.

The bulk of the changes in the diff (BzrConfigurationProjectPanel.java) are due to the auto generated code from Intellij's form designer tool.

To post a comment you must log in.
Revision history for this message
Ian Booth (wallyworld) wrote : Posted in a previous version of this proposal

I could also add an option to track changes against ancestor: as well as submit: if that seems appropriate. I guess there's also work that could be done to add these sorts of options to the right click bzr menu eg "Compare With Submit Revision" etc. I'll look into that if this mp gets approved.

Revision history for this message
Ian Booth (wallyworld) wrote :

I have added the option to track against ancestor:, and resubmitted the merge proposal since I did the changes against the lp:~frankoid/bzr4j/idea11-fixes branch so I could pick up support for PyCharm 2.0

Unmerged revisions

61. By Ian Booth

Merge in latest trunk and add support for tracking against ancestor branches

60. By Francis Devereux

Update <change-notes> in plugin.xml and bump version to 2.6.2-SNAPSHOT

59. By Francis Devereux

Add methods to BzrAnnotation to fix compilation against IntelliJ IDEA 11.0

58. By Francis Devereux

Add Set<String> feedback argument to BzrCheckinEnvironment.commit so that it compiles against IntelliJ IDEA 11.0

57. By Francis Devereux

Form changes made automatically when building with IntelliJ 11.0

56. By Francis Devereux

Update BzrFileRevision to compile against IntelliJ IDEA 11.0 SDK and to use ContentRevisionCache

55. By Francis Devereux

VcsUtil.showErrorMessage has moved to VcsImplUtil

54. By Francis Devereux

Fixed IDEA 10 (latest git as of 14 Feb 2011) compile errors

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'modules/core/src/main/java/org/emergent/bzr4j/core/cli/BzrAbstractExec.java'
2--- modules/core/src/main/java/org/emergent/bzr4j/core/cli/BzrAbstractExec.java 2010-09-23 17:37:33 +0000
3+++ modules/core/src/main/java/org/emergent/bzr4j/core/cli/BzrAbstractExec.java 2012-01-17 00:40:29 +0000
4@@ -159,7 +159,7 @@
5 protected BzrAbstractResult exec(BzrAbstractResult result) throws BzrExecException {
6 long startTime = System.currentTimeMillis();
7 long execId = execCount.incrementAndGet();
8- ArrayList<String> args = new ArrayList<String>(Arrays.asList(getBzrExecutablePath(),m_cmd,"--no-aliases"));
9+ ArrayList<String> args = new ArrayList<String>(Arrays.asList(getBzrExecutablePath(),m_cmd,"-q","--no-aliases"));
10 args.addAll(m_args);
11 Process process = null;
12 try {
13
14=== modified file 'modules/core/src/main/java/org/emergent/bzr4j/core/cli/CmdContext.java'
15--- modules/core/src/main/java/org/emergent/bzr4j/core/cli/CmdContext.java 2010-07-29 10:15:04 +0000
16+++ modules/core/src/main/java/org/emergent/bzr4j/core/cli/CmdContext.java 2012-01-17 00:40:29 +0000
17@@ -56,7 +56,7 @@
18
19
20 BzrAbstractResult exec(String m_cmd, File m_workingDir, BzrAbstractResult result, String... m_args) throws IOException {
21- ArrayList<String> args = new ArrayList<String>(Arrays.asList(getBzrExecutablePath(),m_cmd,"--no-aliases"));
22+ ArrayList<String> args = new ArrayList<String>(Arrays.asList(getBzrExecutablePath(),m_cmd,"-q","--no-aliases"));
23 args.addAll(Arrays.asList(m_args));
24 Process process = null;
25 try {
26
27=== modified file 'modules/intellij/src/main/java/org/emergent/bzr4j/intellij/BzrProjectSettings.java'
28--- modules/intellij/src/main/java/org/emergent/bzr4j/intellij/BzrProjectSettings.java 2010-03-02 20:44:47 +0000
29+++ modules/intellij/src/main/java/org/emergent/bzr4j/intellij/BzrProjectSettings.java 2012-01-17 00:40:29 +0000
30@@ -29,6 +29,9 @@
31 private boolean checkOutgoing;
32 private boolean m_scanTargetOptimizationEnabled;
33 private boolean m_rootCheckingEnabled = true;
34+ private boolean m_trackLocalStatus = true;
35+ private boolean m_trackSubmitStatus = false;
36+ private boolean m_trackAncestorStatus = false;
37
38 public static BzrProjectSettings getInstance(Project project) {
39 return ServiceManager.getService(project, BzrProjectSettings.class);
40@@ -73,4 +76,28 @@
41 public void setRootCheckingEnabled(boolean val) {
42 m_rootCheckingEnabled = val;
43 }
44+
45+ public boolean isTrackLocalStatus() {
46+ return m_trackLocalStatus;
47+ }
48+
49+ public boolean isTrackSubmitStatus() {
50+ return m_trackSubmitStatus;
51+ }
52+
53+ public boolean isTrackAncestorStatus() {
54+ return m_trackAncestorStatus;
55+ }
56+
57+ public void setTrackLocalStatus(boolean trackLocalStatus) {
58+ m_trackLocalStatus = trackLocalStatus;
59+ }
60+
61+ public void setTrackSubmitStatus(boolean trackSubmitStatus) {
62+ m_trackSubmitStatus = trackSubmitStatus;
63+ }
64+
65+ public void setTrackAncestorStatus(boolean trackAncestorStatus) {
66+ m_trackAncestorStatus = trackAncestorStatus;
67+ }
68 }
69
70=== modified file 'modules/intellij/src/main/java/org/emergent/bzr4j/intellij/command/BzrMiscCommand.java'
71--- modules/intellij/src/main/java/org/emergent/bzr4j/intellij/command/BzrMiscCommand.java 2010-03-02 20:44:47 +0000
72+++ modules/intellij/src/main/java/org/emergent/bzr4j/intellij/command/BzrMiscCommand.java 2012-01-17 00:40:29 +0000
73@@ -21,13 +21,18 @@
74 import org.emergent.bzr4j.core.BazaarRoot;
75 import org.emergent.bzr4j.core.cli.BzrAbstractResult;
76 import org.emergent.bzr4j.core.cli.BzrExecException;
77+import org.emergent.bzr4j.core.cli.BzrStandardResult;
78+import org.emergent.bzr4j.core.cli.BzrXmlResult;
79 import org.emergent.bzr4j.core.debug.DebugLogger;
80 import org.emergent.bzr4j.core.debug.DebugManager;
81+import org.emergent.bzr4j.intellij.BzrProjectSettings;
82 import org.emergent.bzr4j.intellij.BzrRevisionNumber;
83 import org.emergent.bzr4j.intellij.BzrRootConverter;
84 import org.emergent.bzr4j.intellij.BzrUtil;
85 import org.jetbrains.annotations.NotNull;
86
87+import java.util.List;
88+
89 /**
90 * @author Patrick Woodworth
91 */
92@@ -36,6 +41,12 @@
93 private static final DebugLogger LOG = DebugManager.getLogger(BzrMiscCommand.class);
94
95 public static BzrRevisionNumber revno(Project project, @NotNull VirtualFile repo) {
96+ if( BzrProjectSettings.getInstance(project).isTrackSubmitStatus() ) {
97+ return BzrRevisionNumber.getLocalInstance("submit:");
98+ }
99+ if( BzrProjectSettings.getInstance(project).isTrackAncestorStatus() ) {
100+ return BzrRevisionNumber.getLocalInstance("ancestor:");
101+ }
102 BazaarRoot bzrRoot = BzrRootConverter.INSTANCE.getBazaarRoot(project,repo);
103 String revstr = bzrRoot == null ? null : bzrRoot.getRevno();
104 if (revstr == null)
105@@ -58,4 +69,5 @@
106
107 return false;
108 }
109+
110 }
111
112=== modified file 'modules/intellij/src/main/java/org/emergent/bzr4j/intellij/provider/BzrChangeProvider.java'
113--- modules/intellij/src/main/java/org/emergent/bzr4j/intellij/provider/BzrChangeProvider.java 2010-07-29 10:15:04 +0000
114+++ modules/intellij/src/main/java/org/emergent/bzr4j/intellij/provider/BzrChangeProvider.java 2012-01-17 00:40:29 +0000
115@@ -36,6 +36,7 @@
116 import org.emergent.bzr4j.core.xmloutput.GenericChange;
117 import org.emergent.bzr4j.core.xmloutput.XmlOutputHandler;
118 import org.emergent.bzr4j.intellij.BzrContentRevision;
119+import org.emergent.bzr4j.intellij.BzrProjectSettings;
120 import org.emergent.bzr4j.intellij.BzrRevisionNumber;
121 import org.emergent.bzr4j.intellij.BzrUtil;
122 import org.emergent.bzr4j.intellij.command.BzrIdeaExec;
123@@ -175,8 +176,17 @@
124
125 BzrIdeaExec statusExec = new BzrIdeaExec(bzrRoot, "xmlstatus");
126 statusExec.setStderrValidationEnabled(false);
127- if (relpath != null)
128+ if (relpath != null) {
129 statusExec.addArguments(relpath);
130+ } else {
131+ //we are getting the overall repo status so check what rev we need to diff against
132+ if( BzrProjectSettings.getInstance(m_project).isTrackSubmitStatus() ) {
133+ statusExec.addArguments("-r", "submit:");
134+ }
135+ if( BzrProjectSettings.getInstance(m_project).isTrackAncestorStatus() ) {
136+ statusExec.addArguments("-r", "ancestor:");
137+ }
138+ }
139 service.executeUnsafe(statusExec, BzrXmlResult.createBzrXmlResult(statusHandler));
140
141 statusHandler.processResults();
142
143=== modified file 'modules/intellij/src/main/java/org/emergent/bzr4j/intellij/ui/BzrConfigurationProjectPanel.form'
144--- modules/intellij/src/main/java/org/emergent/bzr4j/intellij/ui/BzrConfigurationProjectPanel.form 2010-03-02 20:44:47 +0000
145+++ modules/intellij/src/main/java/org/emergent/bzr4j/intellij/ui/BzrConfigurationProjectPanel.form 2012-01-17 00:40:29 +0000
146@@ -1,18 +1,55 @@
147 <?xml version="1.0" encoding="UTF-8"?>
148 <form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="org.emergent.bzr4j.intellij.ui.BzrConfigurationProjectPanel">
149- <grid id="27dc6" binding="m_panel" layout-manager="GridLayoutManager" row-count="3" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
150+ <grid id="27dc6" binding="m_panel" layout-manager="GridLayoutManager" row-count="5" column-count="2" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
151 <margin top="0" left="0" bottom="0" right="0"/>
152 <constraints>
153- <xy x="20" y="20" width="500" height="400"/>
154+ <xy x="20" y="20" width="595" height="400"/>
155 </constraints>
156 <properties/>
157 <border type="none"/>
158 <children>
159 <vspacer id="4794a">
160 <constraints>
161- <grid row="2" column="0" row-span="1" col-span="1" vsize-policy="6" hsize-policy="1" anchor="0" fill="2" indent="0" use-parent-layout="false"/>
162+ <grid row="4" column="1" row-span="1" col-span="1" vsize-policy="6" hsize-policy="1" anchor="0" fill="2" indent="0" use-parent-layout="false"/>
163 </constraints>
164 </vspacer>
165+ <grid id="ccba4" layout-manager="GridLayoutManager" row-count="3" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
166+ <margin top="0" left="0" bottom="0" right="0"/>
167+ <constraints>
168+ <grid row="1" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
169+ </constraints>
170+ <properties/>
171+ <border type="etched" title-resource-bundle="org/emergent/bzr4j/intellij/BzrVcsMessages" title-key="configpanel.tracking_group.text"/>
172+ <children>
173+ <component id="c4bd3" class="javax.swing.JRadioButton" binding="m_trackSubmitChangesOption">
174+ <constraints>
175+ <grid row="1" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
176+ </constraints>
177+ <properties>
178+ <selected value="false"/>
179+ <text value="Track changes against submit branch"/>
180+ </properties>
181+ </component>
182+ <component id="c4bd2" class="javax.swing.JRadioButton" binding="m_trackLocalChangesOption">
183+ <constraints>
184+ <grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
185+ </constraints>
186+ <properties>
187+ <selected value="true"/>
188+ <text value="Track changes against local branch"/>
189+ </properties>
190+ </component>
191+ <component id="c4bd4" class="javax.swing.JRadioButton" binding="m_trackAncestorChangesOption">
192+ <constraints>
193+ <grid row="2" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
194+ </constraints>
195+ <properties>
196+ <selected value="false"/>
197+ <text value="Track changes against ancestor branch"/>
198+ </properties>
199+ </component>
200+ </children>
201+ </grid>
202 <grid id="8c1f" layout-manager="GridLayoutManager" row-count="2" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
203 <margin top="0" left="0" bottom="0" right="0"/>
204 <constraints>
205@@ -41,10 +78,10 @@
206 </component>
207 </children>
208 </grid>
209- <grid id="276d9" layout-manager="GridLayoutManager" row-count="1" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
210+ <grid id="276d9" layout-manager="GridLayoutManager" row-count="2" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
211 <margin top="0" left="0" bottom="0" right="0"/>
212 <constraints>
213- <grid row="1" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
214+ <grid row="2" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
215 </constraints>
216 <properties/>
217 <border type="none" title-resource-bundle="org/emergent/bzr4j/intellij/BzrVcsMessages" title-key="configpanel.miscellaneous_group.text"/>
218@@ -66,5 +103,10 @@
219 <member id="e2d67"/>
220 <member id="9c6c7"/>
221 </group>
222+ <group name="trackOptionGroup">
223+ <member id="c4bd2"/>
224+ <member id="c4bd3"/>
225+ <member id="c4bd4"/>
226+ </group>
227 </buttonGroups>
228 </form>
229
230=== modified file 'modules/intellij/src/main/java/org/emergent/bzr4j/intellij/ui/BzrConfigurationProjectPanel.java'
231--- modules/intellij/src/main/java/org/emergent/bzr4j/intellij/ui/BzrConfigurationProjectPanel.java 2012-01-17 00:40:29 +0000
232+++ modules/intellij/src/main/java/org/emergent/bzr4j/intellij/ui/BzrConfigurationProjectPanel.java 2012-01-17 00:40:29 +0000
233@@ -30,6 +30,10 @@
234 private JCheckBox m_checkOutgoingCbx;
235 private JCheckBox m_autoFixRootsCbx;
236
237+ private JRadioButton m_trackLocalChangesOption;
238+ private JRadioButton m_trackSubmitChangesOption;
239+ private JRadioButton m_trackAncestorChangesOption;
240+
241 private final BzrProjectSettings m_projectSettings;
242
243 public BzrConfigurationProjectPanel(BzrProjectSettings projectSettings) {
244@@ -41,19 +45,28 @@
245 return
246 m_autoFixRootsCbx.isSelected() != m_projectSettings.isRootCheckingEnabled()
247 || m_checkIncomingCbx.isSelected() != m_projectSettings.isCheckIncoming()
248- || m_checkOutgoingCbx.isSelected() != m_projectSettings.isCheckOutgoing();
249+ || m_checkOutgoingCbx.isSelected() != m_projectSettings.isCheckOutgoing()
250+ || m_trackLocalChangesOption.isSelected() != m_projectSettings.isTrackLocalStatus()
251+ || m_trackSubmitChangesOption.isSelected() != m_projectSettings.isTrackSubmitStatus()
252+ || m_trackAncestorChangesOption.isSelected() != m_projectSettings.isTrackAncestorStatus();
253 }
254
255 public void saveSettings() {
256 m_projectSettings.setCheckIncoming(m_checkIncomingCbx.isSelected());
257 m_projectSettings.setCheckOutgoing(m_checkOutgoingCbx.isSelected());
258 m_projectSettings.setRootCheckingEnabled(m_autoFixRootsCbx.isSelected());
259+ m_projectSettings.setTrackLocalStatus(m_trackLocalChangesOption.isSelected());
260+ m_projectSettings.setTrackSubmitStatus(m_trackSubmitChangesOption.isSelected());
261+ m_projectSettings.setTrackAncestorStatus(m_trackAncestorChangesOption.isSelected());
262 }
263
264 public void loadSettings() {
265 m_checkIncomingCbx.setSelected(m_projectSettings.isCheckIncoming());
266 m_checkOutgoingCbx.setSelected(m_projectSettings.isCheckOutgoing());
267 m_autoFixRootsCbx.setSelected(m_projectSettings.isRootCheckingEnabled());
268+ m_trackLocalChangesOption.setSelected(m_projectSettings.isTrackLocalStatus());
269+ m_trackSubmitChangesOption.setSelected(m_projectSettings.isTrackSubmitStatus());
270+ m_trackAncestorChangesOption.setSelected(m_projectSettings.isTrackAncestorStatus());
271 }
272
273 public JPanel getPanel() {
274@@ -74,23 +87,52 @@
275 */
276 private void $$$setupUI$$$() {
277 m_panel = new JPanel();
278- m_panel.setLayout(new GridLayoutManager(3, 1, new Insets(0, 0, 0, 0), -1, -1));
279+ m_panel.setLayout(new GridLayoutManager(5, 2, new Insets(0, 0, 0, 0), -1, -1));
280 final Spacer spacer1 = new Spacer();
281 m_panel.add(spacer1,
282- new GridConstraints(2, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_VERTICAL, 1,
283+ new GridConstraints(4, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_VERTICAL, 1,
284 GridConstraints.SIZEPOLICY_WANT_GROW, null, null, null, 0, false));
285 final JPanel panel1 = new JPanel();
286- panel1.setLayout(new GridLayoutManager(2, 1, new Insets(0, 0, 0, 0), -1, -1));
287- m_panel.add(panel1, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH,
288- GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW,
289- GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null, null, null, 0, false));
290- panel1.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), "Changesets"));
291+ panel1.setLayout(new GridLayoutManager(3, 1, new Insets(0, 0, 0, 0), -1, -1));
292+ m_panel.add(panel1, new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH,
293+ GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW,
294+ GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null, null, null, 0, false));
295+ panel1.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(),
296+ ResourceBundle.getBundle("org/emergent/bzr4j/intellij/BzrVcsMessages")
297+ .getString("configpanel.tracking_group.text")));
298+ m_trackSubmitChangesOption = new JRadioButton();
299+ m_trackSubmitChangesOption.setSelected(false);
300+ m_trackSubmitChangesOption.setText("Track changes against submit branch");
301+ panel1.add(m_trackSubmitChangesOption,
302+ new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE,
303+ GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW,
304+ GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
305+ m_trackLocalChangesOption = new JRadioButton();
306+ m_trackLocalChangesOption.setSelected(true);
307+ m_trackLocalChangesOption.setText("Track changes against local branch");
308+ panel1.add(m_trackLocalChangesOption,
309+ new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE,
310+ GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW,
311+ GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
312+ m_trackAncestorChangesOption = new JRadioButton();
313+ m_trackAncestorChangesOption.setSelected(false);
314+ m_trackAncestorChangesOption.setText("Track changes against ancestor branch");
315+ panel1.add(m_trackAncestorChangesOption,
316+ new GridConstraints(2, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE,
317+ GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW,
318+ GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
319+ final JPanel panel2 = new JPanel();
320+ panel2.setLayout(new GridLayoutManager(2, 1, new Insets(0, 0, 0, 0), -1, -1));
321+ m_panel.add(panel2, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH,
322+ GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW,
323+ GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null, null, null, 0, false));
324+ panel2.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), "Changesets"));
325 m_checkIncomingCbx = new JCheckBox();
326 m_checkIncomingCbx.setSelected(true);
327 m_checkIncomingCbx.setText("Check for incoming changesets");
328 m_checkIncomingCbx.setMnemonic('I');
329 m_checkIncomingCbx.setDisplayedMnemonicIndex(10);
330- panel1.add(m_checkIncomingCbx,
331+ panel2.add(m_checkIncomingCbx,
332 new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE,
333 GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW,
334 GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
335@@ -99,25 +141,30 @@
336 m_checkOutgoingCbx.setText("Check for outgoing changesets");
337 m_checkOutgoingCbx.setMnemonic('O');
338 m_checkOutgoingCbx.setDisplayedMnemonicIndex(10);
339- panel1.add(m_checkOutgoingCbx,
340+ panel2.add(m_checkOutgoingCbx,
341 new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE,
342 GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW,
343 GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
344- final JPanel panel2 = new JPanel();
345- panel2.setLayout(new GridLayoutManager(1, 1, new Insets(0, 0, 0, 0), -1, -1));
346- m_panel.add(panel2, new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH,
347+ final JPanel panel3 = new JPanel();
348+ panel3.setLayout(new GridLayoutManager(2, 1, new Insets(0, 0, 0, 0), -1, -1));
349+ m_panel.add(panel3, new GridConstraints(2, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH,
350 GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW,
351 GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null, null, null, 0, false));
352- panel2.setBorder(BorderFactory.createTitledBorder(
353+ panel3.setBorder(BorderFactory.createTitledBorder(
354 ResourceBundle.getBundle("org/emergent/bzr4j/intellij/BzrVcsMessages")
355 .getString("configpanel.miscellaneous_group.text")));
356 m_autoFixRootsCbx = new JCheckBox();
357 this.$$$loadButtonText$$$(m_autoFixRootsCbx, ResourceBundle.getBundle("org/emergent/bzr4j/intellij/BzrVcsMessages")
358 .getString("configpanel.check_roots_enabled.text"));
359- panel2.add(m_autoFixRootsCbx,
360+ panel3.add(m_autoFixRootsCbx,
361 new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE,
362 GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW,
363 GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
364+ ButtonGroup buttonGroup;
365+ buttonGroup = new ButtonGroup();
366+ buttonGroup.add(m_trackLocalChangesOption);
367+ buttonGroup.add(m_trackSubmitChangesOption);
368+ buttonGroup.add(m_trackAncestorChangesOption);
369 }
370
371 /** @noinspection ALL */
372
373=== modified file 'modules/intellij/src/main/java/org/emergent/bzr4j/intellij/ui/BzrSwitchDialog.java'
374--- modules/intellij/src/main/java/org/emergent/bzr4j/intellij/ui/BzrSwitchDialog.java 2010-01-05 02:18:38 +0000
375+++ modules/intellij/src/main/java/org/emergent/bzr4j/intellij/ui/BzrSwitchDialog.java 2012-01-17 00:40:29 +0000
376@@ -171,69 +171,59 @@
377 cleanCbx.setText("Overwrite locally modified files (no backup)");
378 cleanCbx.setMnemonic('O');
379 cleanCbx.setDisplayedMnemonicIndex(0);
380- contentPanel.add(cleanCbx,
381- new GridConstraints(2, 0, 1, 2, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE,
382- GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW,
383- GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
384+ contentPanel.add(cleanCbx, new GridConstraints(2, 0, 1, 2, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE,
385+ GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED,
386+ null, null, null, 0, false));
387 final JPanel panel1 = new JPanel();
388 panel1.setLayout(new GridLayoutManager(3, 2, new Insets(0, 0, 0, 0), -1, -1));
389- contentPanel.add(panel1,
390- new GridConstraints(1, 0, 1, 2, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH,
391- GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW,
392- GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null, null, null,
393- 0, false));
394+ contentPanel.add(panel1, new GridConstraints(1, 0, 1, 2, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH,
395+ GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW,
396+ GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null, null, null, 0, false));
397 panel1.setBorder(BorderFactory.createTitledBorder("Switch to:"));
398 branchOption = new JRadioButton();
399 branchOption.setSelected(true);
400 branchOption.setText("Branch");
401 branchOption.setMnemonic('B');
402 branchOption.setDisplayedMnemonicIndex(0);
403- panel1.add(branchOption,
404- new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE,
405- GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW,
406- GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
407+ panel1.add(branchOption, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE,
408+ GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED,
409+ null, null, null, 0, false));
410 branchSelector = new JComboBox();
411 branchSelector.setEnabled(true);
412- final DefaultComboBoxModel defaultComboBoxModel1 = new DefaultComboBoxModel();
413- branchSelector.setModel(defaultComboBoxModel1);
414 panel1.add(branchSelector,
415 new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL,
416- GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
417- false));
418+ GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
419 revisionOption = new JRadioButton();
420 revisionOption.setSelected(false);
421 revisionOption.setText("Revision");
422 revisionOption.setMnemonic('R');
423 revisionOption.setDisplayedMnemonicIndex(0);
424- panel1.add(revisionOption,
425- new GridConstraints(2, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE,
426- GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW,
427- GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
428+ panel1.add(revisionOption, new GridConstraints(2, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE,
429+ GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED,
430+ null, null, null, 0, false));
431 revisionTxt = new JTextField();
432 revisionTxt.setEnabled(false);
433 revisionTxt.setText("");
434 panel1.add(revisionTxt,
435 new GridConstraints(2, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL,
436- GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null,
437- new Dimension(150, -1), null, 0, false));
438+ GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null,
439+ 0, false));
440 tagOption = new JRadioButton();
441 tagOption.setText("Tag");
442 tagOption.setMnemonic('T');
443 tagOption.setDisplayedMnemonicIndex(0);
444 panel1.add(tagOption, new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE,
445- GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW,
446- GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
447+ GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED,
448+ null, null, null, 0, false));
449 tagSelector = new JComboBox();
450 panel1.add(tagSelector,
451 new GridConstraints(1, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL,
452- GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
453- false));
454+ GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
455 hgRepositorySelectorComponent = new BzrRepositorySelectorComponent();
456 contentPanel.add(hgRepositorySelectorComponent.$$$getRootComponent$$$(),
457 new GridConstraints(0, 0, 1, 2, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL,
458 GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_WANT_GROW,
459- GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null, null, null,
460- 0, false));
461+ GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null, null, null, 0, false));
462 ButtonGroup buttonGroup;
463 buttonGroup = new ButtonGroup();
464 buttonGroup.add(revisionOption);
465
466=== modified file 'modules/intellij/src/main/resources/org/emergent/bzr4j/intellij/BzrVcsMessages.properties'
467--- modules/intellij/src/main/resources/org/emergent/bzr4j/intellij/BzrVcsMessages.properties 2010-03-02 20:50:05 +0000
468+++ modules/intellij/src/main/resources/org/emergent/bzr4j/intellij/BzrVcsMessages.properties 2012-01-17 00:40:29 +0000
469@@ -55,6 +55,7 @@
470 configpanel.exechooser.title=Bazaar Configuration
471 configpanel.miscellaneous_group.text=Miscellaneous settings
472 configpanel.trim_annotation_author.text=Trim annotation author text
473+configpanel.tracking_group.text=Changes Tracking
474 confirmation.text.add.dir=Do you want to schedule the following directory for addition to Bazaar?\n{0}
475 confirmation.text.add.file=Do you want to schedule the following file for addition to Bazaar?\n{0}
476 confirmation.text.delete.dir=Do you want to schedule the following directory for deletion from Bazaar?\n{0}\nNOTE: The directory will be deleted from disk when the change is committed.

Subscribers

People subscribed via source and target branches