Add experimental support for automatic conflict handling

Use new content merge functionality in JGit for automatic
resolution of conflicts within a file.

Change-Id: Ifae8a94709fb60f13e4c79fb6bb77a214ef5f0b7
Signed-off-by: Shawn O. Pearce <sop@google.com>
This commit is contained in:
Dmitry Fink
2010-09-29 23:44:22 -07:00
committed by Shawn O. Pearce
parent 35d753c8f7
commit 876953ea4d
10 changed files with 84 additions and 3 deletions

View File

@@ -33,6 +33,7 @@ public interface AdminConstants extends Constants {
String buttonAddProjectRight();
String buttonClearProjectRight();
String buttonSaveChanges();
String useContentMerge();
String useContributorAgreements();
String useSignedOffBy();
String requireChangeID();

View File

@@ -14,6 +14,7 @@ buttonSelectGroup = Select
buttonAddProjectRight = Add Access Right
buttonClearProjectRight = Clear Form
buttonSaveChanges = Save Changes
useContentMerge = Automatically resolve conflicts
useContributorAgreements = Require a valid contributor agreement to upload
useSignedOffBy = Require <a href="http://gerrit.googlecode.com/svn/documentation/2.0/user-signedoffby.html#Signed-off-by" target="_blank"><code>Signed-off-by</code></a> in commit message
requireChangeID = Require <a href="http://gerrit.googlecode.com/svn/documentation/2.0/user-changeid.html" target="_blank"><code>Change-Id</code></a> in commit message

View File

@@ -36,6 +36,7 @@ public class ProjectInfoScreen extends ProjectScreen {
private Panel projectOptionsPanel;
private CheckBox requireChangeID;
private ListBox submitType;
private CheckBox useContentMerge;
private Panel agreementsPanel;
private CheckBox useContributorAgreements;
@@ -88,6 +89,7 @@ public class ProjectInfoScreen extends ProjectScreen {
private void enableForm(final boolean canModifyAgreements,
final boolean canModifyDescription, final boolean canModifyMergeType) {
submitType.setEnabled(canModifyMergeType);
useContentMerge.setEnabled(canModifyMergeType);
descTxt.setEnabled(canModifyDescription);
useContributorAgreements.setEnabled(canModifyAgreements);
useSignedOffBy.setEnabled(canModifyAgreements);
@@ -119,6 +121,10 @@ public class ProjectInfoScreen extends ProjectScreen {
saveEnabler.listenTo(submitType);
projectOptionsPanel.add(submitType);
useContentMerge = new CheckBox(Util.C.useContentMerge(), true);
saveEnabler.listenTo(useContentMerge);
projectOptionsPanel.add(useContentMerge);
requireChangeID = new CheckBox(Util.C.requireChangeID(), true);
saveEnabler.listenTo(requireChangeID);
projectOptionsPanel.add(requireChangeID);
@@ -166,6 +172,7 @@ public class ProjectInfoScreen extends ProjectScreen {
descTxt.setText(project.getDescription());
useContributorAgreements.setValue(project.isUseContributorAgreements());
useSignedOffBy.setValue(project.isUseSignedOffBy());
useContentMerge.setValue(project.isUseContentMerge());
requireChangeID.setValue(project.isRequireChangeID());
setSubmitType(project.getSubmitType());
@@ -176,6 +183,7 @@ public class ProjectInfoScreen extends ProjectScreen {
project.setDescription(descTxt.getText().trim());
project.setUseContributorAgreements(useContributorAgreements.getValue());
project.setUseSignedOffBy(useSignedOffBy.getValue());
project.setUseContentMerge(useContentMerge.getValue());
project.setRequireChangeID(requireChangeID.getValue());
if (submitType.getSelectedIndex() >= 0) {
project.setSubmitType(Project.SubmitType.valueOf(submitType