Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRobin Stocker2014-02-16 19:10:53 +0000
committerMatthias Sohn2014-02-16 21:39:34 +0000
commita32545beabdc46e2edc388590f5a95b7345f5dbc (patch)
tree7107eef9bc49e444f8146a5cad04d5ef2b232ec1 /org.eclipse.egit.ui
parent266c2790091598e93324b88e1d530c6a0c127d00 (diff)
downloadegit-a32545beabdc46e2edc388590f5a95b7345f5dbc.tar.gz
egit-a32545beabdc46e2edc388590f5a95b7345f5dbc.tar.xz
egit-a32545beabdc46e2edc388590f5a95b7345f5dbc.zip
Push Branch: Add checkbox for force push
Bug: 426919 Change-Id: If984e6b15388cb31c7e56eb803eacbc4657f8dc9 Signed-off-by: Robin Stocker <robin@nibor.org> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
Diffstat (limited to 'org.eclipse.egit.ui')
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/UIText.java3
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/push/PushBranchPage.java17
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/push/PushBranchWizard.java5
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/uitext.properties1
4 files changed, 24 insertions, 2 deletions
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/UIText.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/UIText.java
index 26b9e95925..9edc49ac54 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/UIText.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/UIText.java
@@ -1993,6 +1993,9 @@ public class UIText extends NLS {
public static String PushBranchPage_ChooseRemoteError;
/** */
+ public static String PushBranchPage_ForceUpdateButton;
+
+ /** */
public static String PushBranchPage_InvalidBranchNameError;
/** */
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/push/PushBranchPage.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/push/PushBranchPage.java
index cf892db659..0f9f4dde9a 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/push/PushBranchPage.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/push/PushBranchPage.java
@@ -68,6 +68,8 @@ public class PushBranchPage extends WizardPage {
private UpstreamConfigComponent upstreamConfigComponent;
+ private boolean forceUpdateSelected = false;
+
/** Only set if user selected "New Remote" */
private AddRemotePage addRemotePage;
@@ -120,6 +122,10 @@ public class PushBranchPage extends WizardPage {
return upstreamConfig == UpstreamConfig.REBASE;
}
+ boolean isForceUpdateSelected() {
+ return forceUpdateSelected;
+ }
+
public void createControl(Composite parent) {
try {
this.remoteConfigs = RemoteConfig.getAllRemoteConfigs(repository.getConfig());
@@ -189,6 +195,17 @@ public class PushBranchPage extends WizardPage {
}
});
+ final Button forceUpdateButton = new Button(inputPanel, SWT.CHECK);
+ forceUpdateButton.setText(UIText.PushBranchPage_ForceUpdateButton);
+ forceUpdateButton.setSelection(false);
+ forceUpdateButton.setLayoutData(GridDataFactory.fillDefaults()
+ .grab(true, false).span(3, 1).create());
+ forceUpdateButton.addSelectionListener(new SelectionAdapter() {
+ public void widgetSelected(SelectionEvent e) {
+ forceUpdateSelected = forceUpdateButton.getSelection();
+ }
+ });
+
setDefaultUpstreamConfig();
setControl(main);
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/push/PushBranchWizard.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/push/PushBranchWizard.java
index 4c5fcdc403..dee4ffb852 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/push/PushBranchWizard.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/push/PushBranchWizard.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2013 Robin Stocker <robin@nibor.org> and others.
+ * Copyright (c) 2013, 2014 Robin Stocker <robin@nibor.org> and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -142,7 +142,8 @@ public class PushBranchWizard extends Wizard {
private List<RefSpec> getRefSpecs() {
String src = refToPush.getName();
String dst = Constants.R_HEADS + pushBranchPage.getBranchName();
- RefSpec refSpec = new RefSpec(src + ":" + dst); //$NON-NLS-1$
+ RefSpec refSpec = new RefSpec().setSourceDestination(src, dst)
+ .setForceUpdate(pushBranchPage.isForceUpdateSelected());
return Arrays.asList(refSpec);
}
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/uitext.properties b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/uitext.properties
index d438de9a5c..b264de2564 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/uitext.properties
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/uitext.properties
@@ -687,6 +687,7 @@ PushAction_wrongURITitle=Corrupted Configuration
PushBranchPage_BranchNameLabel=&Branch name:
PushBranchPage_ChooseBranchNameError=Please choose a name for the new branch.
PushBranchPage_ChooseRemoteError=Please choose or add a remote.
+PushBranchPage_ForceUpdateButton=&Force overwrite of branch on remote if it exists and has diverged
PushBranchPage_InvalidBranchNameError=Invalid branch name.
PushBranchPage_NewRemoteButton=&New Remote...
PushBranchPage_PageMessage=Select a remote and the name the branch should have on the remote.

Back to the top